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

अपने आप में एक तालिका में शामिल हों

आप इसके साथ तालिका में पूरी तरह से शामिल हो सकते हैं।

हालाँकि, आपको अवगत होना चाहिए कि आपका डिज़ाइन आपको पदानुक्रम के कई स्तरों की अनुमति देता है। चूंकि आप SQL सर्वर का उपयोग कर रहे हैं (2005 या उच्चतर मानते हुए), आप एक पुनरावर्ती CTE को अपनी ट्री संरचना प्राप्त कर सकते हैं।

अवधारणा तैयार करने का प्रमाण:

declare @YourTable table (id int, parentid int, title varchar(20))

insert into @YourTable values
(1,null, 'root'),
(2,1,    'something'),
(3,1,    'in the way'),
(4,1,    'she moves'),
(5,3,    ''),
(6,null, 'I don''t know'),
(7,6,    'Stick around');

प्रश्न 1 - नोड स्तर:

with cte as (
    select Id, ParentId, Title, 1 level 
    from @YourTable where ParentId is null

    union all

    select yt.Id, yt.ParentId, yt.Title, cte.level + 1
    from @YourTable yt inner join cte on cte.Id = yt.ParentId
)
select cte.*
from cte 
order by level, id, Title


  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 सर्वर 2008 में संयोजित करना

  2. मैं SQL सर्वर तालिका में यादृच्छिक मान कैसे सम्मिलित कर सकता हूं?

  3. टेक्स्टबॉक्स टेक्स्ट को पूर्णांक में बदलें

  4. एसक्यूएल में कुल मिनट के लिए डेटाटाइम

  5. वर्चर (-1) का क्या अर्थ है?