sql >> Databáze >  >> RDS >> Sqlserver

Alternativa funkce lead lag v SQL Server 2008

Ve vašem případě id s se zdají být číselné, stačí provést vlastní spojení:

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;

Tohle není úplně stejná minuta. Je to do 60 sekund. Opravdu potřebujete stejnou minutu v kalendáři? Pokud ano, můžete:

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. 7 věcí, které byste měli vědět o oddílech v infrastruktuře Oracle Cloud Infrastructure

  2. Chyba při převodu XML ze sloupce CLOB na sloupec XMLType

  3. Regulární výrazy uvnitř SQL Serveru

  4. Mohu použít více kurzorů na jedno připojení s pyodbc a MS SQL Server?