sql >> Database >  >> RDS >> Sqlserver

SQL als Record gelijk is aan het record ervoor

;WITH MyCTE AS
(
    SELECT *, 
           ROW_NUMBER()OVER (ORDER BY TextString) AS rn
    FROM   Table1
)
SELECT T1.TextString AS T1String,
       T2.TextString AS T2String,
       CASE WHEN T1.TextString = T2.TextString THEN T1.ID ELSE '' END AS NewCode,
       CASE WHEN T1.TextString = T2.TextString THEN T2.ID ELSE '' END AS OldCode
FROM   MyCTE T1
       LEFT JOIN MyCTE T2
           ON T1.rn = T2.rn+1

SQL Fiddle-demo




  1. Voer MySQL INSERT-query meerdere keren uit (voeg waarden in meerdere tabellen in)

  2. Prestaties afstemmen van het hele queryplan

  3. Het proces van synchronisatie van SQL Server-databaseschema's automatiseren

  4. Extract Oracle LONG naar string in VBA