Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

पंक्तियों के बीच SQL सर्वर DatedIFF परिकलित स्तंभ

मैं आपको इस उद्देश्य के लिए एक दृश्य का उपयोग करने की सलाह देता हूं:

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

चूंकि आप SQL Server 2012 का उपयोग कर रहे हैं आप LEAD का उपयोग कर सकते हैं समारोह:

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. 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. गतिरोध पीड़ित सेट करना

  4. VBA का उपयोग करके संग्रहीत कार्यविधि को कॉल करना

  5. SQL सर्वर में लोअरकेस अक्षरों वाली पंक्तियों को वापस करने के 5 तरीके