sql >> Databasteknik >  >> RDS >> Sqlserver

SQL om Record är lika med posten före den

;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. Formatera det totala värdet till en valuta med 2 decimaler

  2. Kommandon är osynkroniserade; du kan inte köra det här kommandot nu medan du anropar lagrad procedur i Mysql

  3. Få följare på ett posteffektivt sätt i laravel 5.1

  4. mysql ft_min_word_len ändring på ubuntu fungerar inte