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

SQL सर्वर में दिनांक और नियमों के आधार पर रिकॉर्ड के उप-सेट की पहचान करें

आप LAG() . का उपयोग कर सकते हैं और LEAD() विश्लेषणात्मक कार्य:

SELECT * FROM (
    SELECT t.*,
           LAG(t.linked,1,0) OVER(ORDER BY t.FromDate DESC) as rnk_1, --Next one
           LEAD(t.linked,1,0) OVER(ORDER BY t.FromDate DESC) as rnk_2, -- Last one,
           LEAD(t.linked,2,0) OVER(ORDER BY t.FromDate DESC) as rnk_3 -- Last two,
    FROM YourTable t) s
WHERE ((s.rnk_1 = 1 OR s.rnk_2 = 1) AND s.linked = 1) OR 
      (s.rnk_2 = 1 and s.rnk_3 = 1 and s.linked = 0)
ORDER BY s.FromDate DESC

इसके परिणामस्वरूप ऐसे रिकॉर्ड होंगे जिनमें linked = 1 . है और पिछला/अगला रिकॉर्ड भी 1 है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर का पोर्ट नंबर

  2. SQL सर्वर में सभी डेटाबेस में सभी तालिकाओं के लिए कॉलम नाम कैसे खोजें

  3. SQL सर्वर में Msg 8116 "तर्क डेटा प्रकार varchar session_context फ़ंक्शन के तर्क 1 के लिए अमान्य है" को ठीक करें

  4. SQL सर्वर में sp_depends का उपयोग न करें (यह पदावनत है)

  5. मैं एक स्ट्रिंग के लिए SQL सर्वर डेटाबेस कैसे खोजूं?