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

सीटीई का उपयोग करके आसन्न सूची पदानुक्रम को क्वेरी और पार्स कैसे करें?

आपका उदाहरण डेटा प्रश्न को स्पष्ट करता है। जैसे ही आप उतरते हैं आप प्रबंधक स्तर एकत्र कर सकते हैं:

; with  Tree as
        (
        SELECT  empid
        ,       mgrid
        ,       1 as lv
        ,       1 as level1
        ,       null as level2
        ,       null as level3
        ,       null as level4
        ,       null as level5
        FROM    Employees
        WHERE   mgrid IS NULL 
        UNION ALL
        SELECT  E.empid
        ,       E.mgrid
        ,       T.lv + 1
        ,       T.level1
        ,       case when T.lv = 1 then E.empid else t.level2 end
        ,       case when T.lv = 2 then E.empid else t.level3 end
        ,       case when T.lv = 3 then E.empid else t.level4 end
        ,       case when T.lv = 4 then E.empid else t.level5 end
        FROM    Employees AS E
        JOIN    Tree T
        ON      E.mgrid = T.empid
        )
select  *
from    Tree

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 सर्वर अमान्य वस्तु का नाम - लेकिन तालिकाएँ SSMS तालिका सूची में सूचीबद्ध हैं

  3. एसक्यूएल सर्वर 2008 - क्या एक ट्रिगर लॉगिन/उपयोगकर्ता के समान अनुमतियों के साथ चलता है?

  4. TSQL में COALESCE फ़ंक्शन

  5. SQL सर्वर लॉग शिपिंग और डिजास्टर रिकवरी इंस्टाल और कॉन्फ़िगरेशन -4