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

SQL पुनरावर्ती मेनू छँटाई

ठीक है, समझ गया :) -- ऐसा लगता है कि यह यहाँ काम कर रहा है।

DECLARE @Categories TABLE (
 ID int PRIMARY KEY
,Title varchar(256)
,ParentID int
)

INSERT INTO @Categories
VALUES
 (1, 'All', 0)
,(2,'Banking', 8)
,(3,'USAA Checking', 2)
,(4,'USAA Mastercard', 2)
,(5,'Medical', 8)
,(6,'Jobs', 8)
,(7,'Archive', 1)
,(8,'Active', 1)
,(9,'BoA Amex', 2)


;
WITH  CategoryTree
        AS (SELECT  r.ID, r.Title, 0 Level, r.ParentID,
                    CAST(r.Title AS VARCHAR(1000)) AS "Path"
            FROM    @Categories r
            WHERE   r.ParentID = 0
            UNION ALL
            SELECT  c.ID, c.Title, p.Level + 1 AS Level, c.ParentID,
                    CAST((p.path + '/' + c.Title) AS VARCHAR(1000)) AS "Path"
            FROM    @Categories c
                    INNER JOIN CategoryTree p
                      ON p.ID = c.ParentID
           )
  SELECT  ID, REPLICATE('-----', Level) + Title AS Title, [Path]
  FROM    CategoryTree
  ORDER BY [Path]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या कोई विदेशी कुंजी NULL और/या डुप्लिकेट हो सकती है?

  2. दो तिथियों के बीच लापता तिथियों को सम्मिलित करने के लिए टैली तालिका? एसक्यूएल

  3. टीएसक्यूएल में नल कैरेक्टर शाब्दिक क्या है?

  4. SQL सर्वर निहित डेटाटाइम रूपांतरण के लिए प्रारूप कैसे तय करता है?

  5. दो तिथियों के बीच सप्ताह के दिनों (रविवार, सोमवार, मंगलवार) की संख्या प्राप्त करें SQL