sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server DATEDIFF Beräknad kolumn mellan rader

Jag rekommenderar att du använder en vy för detta ändamål:

CREATE VIEW Table1_vw 
AS
WITH cte AS (
    SELECT  *, 
            ROW_NUMBER() OVER (ORDER BY RecordTime) AS rn
    FROM    dbo.Table1
)
SELECT  mc.RecordTime,
        mc.Running,
        mc.Fault,
        DATEDIFF(second, mc.RecordTime, mp.RecordTime) Diff
FROM cte mc
LEFT JOIN cte mp
ON mc.rn = mp.rn - 1

Eftersom du använder SQL Server 2012 du kan använda LEAD funktion:

CREATE VIEW Table1_vw 
AS
SELECT  RecordTime,
        Running,
        Fault,
        DATEDIFF(second,RecordTime,LEAD(RecordTime,1,NULL) OVER (ORDER BY RecordTime ASC) ) as Diff
FROM Table1
GO


  1. Hur ser jag vilken teckenuppsättning en MySQL-databas/tabell/kolumn är?

  2. Hur aktiverar jag fulltextindexering i SQL Server 2005 Express?

  3. skulle postgres verkligen uppdatera sidfilen när alla fält är lika före och efter uppdatering?

  4. Starta och fylla i en Postgres-behållare i Docker