Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Алтернатива на функцията за закъснение в SQL Server 2008

Във вашия случай, id s изглеждат числови, можете просто да направите самостоятелно присъединяване:

select t.*
from table t join
     table tnext
     on t.id = tnext.id - 1 and
        t.StatusId = 1 and
        tnext.StatusId = 6 and
        datediff(second, t.MinStartTime, tnext.MinStartTime) < 60;

Това не е съвсем същата минута. Това е в рамките на 60 секунди. Наистина ли имате нужда от една и съща календарна минута? Ако е така, можете да направите:

select t.*
from table t join
     table tnext
     on t.id = tnext.id - 1 and
        t.StatusId = 1 and
        tnext.StatusId = 6 and
        datediff(second, t.MinStartTime, tnext.MinStartTime) < 60 and
        datepart(minute, t.MinStartTime) = datepart(minute, tnext.MinStartTime);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Множество индекси срещу индекси с няколко колони

  2. Създаване на низ индекс с първо код

  3. SQL Server 2017:Копиране на данни от SQL Server от Linux към Windows с SSIS

  4. Използване на Spotlight Cloud за разрешаване на блокиране на SQL Server

  5. Как да групирате по месеци от полето Дата с помощта на sql