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

एसक्यूएल सर्वर:सेल्फ रेफरेंसिंग टेबल में पैरेंट आईडी दिए गए सभी चाइल्ड रिकॉर्ड कैसे प्राप्त करें?

आप इसे आजमा सकते हैं

DECLARE @Table TABLE(
        ID INT,
        ParentID INT,
        NAME VARCHAR(20)
)

INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 1, NULL, 'A'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 2, 1, 'B-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 3, 1, 'B-2'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 4, 2, 'C-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 5, 2, 'C-2'


DECLARE @ID INT

SELECT @ID = 2

;WITH ret AS(
        SELECT  *
        FROM    @Table
        WHERE   ID = @ID
        UNION ALL
        SELECT  t.*
        FROM    @Table t INNER JOIN
                ret r ON t.ParentID = r.ID
)

SELECT  *
FROM    ret


  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 तरीके (T-SQL)

  3. 32-बिट एक्सेल और 64-बिट एसक्यूएल सर्वर

  4. क्लस्टर्ड और नॉन-क्लस्टर इंडेक्स का वास्तव में क्या मतलब है?

  5. शिफ्ट और ब्रेक टेबल से कार्य समय की गणना करें