Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Alternatif fungsi lead lag di SQL Server 2008

Dalam kasus Anda, id s tampaknya numerik, Anda bisa melakukan self-join:

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;

Ini bukan menit yang sama. Itu dalam waktu 60 detik. Apakah Anda benar-benar membutuhkan menit waktu kalender yang sama? Jika demikian, Anda dapat melakukan:

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. Perbarui kueri menggunakan Subquery di Sql Server

  2. Parsing JSON di TSQL

  3. Kembalikan Semua Batasan yang Dinonaktifkan di SQL Server (Contoh T-SQL)

  4. cara mendapatkan hasil lengkap dari SSMS

  5. TSQL Pivot tanpa fungsi agregat