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

एसक्यूएल चयन पंक्ति

यह row_number() . के साथ आसानी से किया जा सकता है विंडो फ़ंक्शन:

; with  numbered as
        (
        select  row_number() over (order by [time]) rn
        ,       count(*) over() as cnt
        ,       *
        from    Table1
        )
select  *
from    numbered cur
left join
        numbered prev
on      cur.rn = prev.rn + 1
left join
        numbered next
on      cur.rn = next.rn - 1
where   cur.rn in (1, cur.cnt) -- first or last row
        or (cur.id = 'start' and prev.id = 'stop') -- start after stop
order by
        cur.rn

SQL Fiddle पर लाइव उदाहरण।

ऐसा नहीं है कि आपका उदाहरण आउटपुट आपकी आवश्यकताओं को पूरा नहीं करता है। इसमें कई पंक्तियाँ शामिल हैं जो तीन मानदंडों में से किसी से भी मेल नहीं खाती हैं (पहली पंक्ति, अंतिम पंक्ति, स्टॉप के बाद शुरू होती है।)




  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 सर्वर 2005 में फ़ोन नंबर संग्रहीत करने के लिए किस डेटाटाइप का उपयोग किया जाना चाहिए?

  3. SSIS स्क्रिप्ट कंपोनेंट को मान असाइन करें नया आउटपुट कॉलम

  4. विजुअल स्टूडियो में SQL सर्वर डेटाबेस से कनेक्ट नहीं हो सकता क्योंकि मेरा डेटाबेस वहां नहीं है

  5. भौतिक रूप से वितरित डेटा पर विदेशी कुंजी संबंध कैसे बनाएं?