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

इस क्वेरी का पदानुक्रम स्तर कैसे प्राप्त करें

आपको Level . नाम का एक कॉलम जोड़ना होगा (या जो भी आप इसे कॉल करना चाहते हैं) - "एंकर" चयन के साथ-साथ आपके सीटीई के पुनरावर्ती भाग दोनों के लिए - इस तरह:

WITH CategoryRec AS 
(
    SELECT Id, Parentid, Name, 1 AS 'Level'
    FROM dbo.Category

    UNION ALL

    SELECT cr.Id, c.Parentid, cr.Name, cr.Level + 1 
    FROM CategoryRec AS cr 
    INNER JOIN dbo.Category AS c ON cr.Parentid = c.Id
    WHERE c.Parentid IS NOT NULL
)
SELECT DISTINCT Id, Parentid, Name, Level
FROM  CategoryRec


  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 सर्वर (T-SQL) से ईवेंट हटाएं

  2. SQL सर्वर:क्या एक ही समय में दो तालिकाओं में सम्मिलित करना संभव है?

  3. एसक्यूएल इनर जॉइन के साथ हटाएं

  4. SQL सर्वर कॉलम नाम के रूप में सबस्ट्रिंग के साथ किसी अन्य तालिका के आधार पर एक तालिका को पॉप्युलेट करता है

  5. रूपांतरण विफलता में ISNUMERIC परिणामों के साथ व्युत्पन्न तालिका का उपयोग करने वाली क्वेरी (varchar to int)