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

SQL 2005 में पुनरावर्ती क्वेरी परिणामों से पदानुक्रम का आदेश देना

ऐसा करने का एक तरीका यह है कि आप एक ऐसा पदानुक्रम स्तंभ जोड़ें जिसमें सूची में सभी पिछली आईडी हों:

with tasks (TaskId, ParentTaskId, [Name], TaskIdList) as
(
    select parentTasks.TaskId,
           parentTasks.ParentTaskId,
           parentTasks.[Name],
           parentTasks.TaskId
    from   Task parentTasks
    where  ParentTaskId is null

    union all

    select childTasks.TaskId,
           childTasks.ParentTaskId,
           childTasks.[Name],
           tasks.TaskIdList + '.' + childTasks.TaskId
    from   Task childTasks
    join   tasks
    on     childTasks.ParentTaskId = tasks.TaskId
)

select TaskId, ParentTaskId, [Name] from tasks
   order by TaskIdList

ध्यान दें कि यह मानता है कि टास्कआईड एक स्ट्रिंग-आधारित आईडी है। यदि नहीं, तो आपको इसे जोड़ने से पहले इसे एक वर्चर में डालना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मुझे SQL2000 से SQL2005 में अपग्रेड क्यों करना चाहिए?

  2. मैं एक परिणाम सेट में SQL सर्वर के सभी डेटाबेस में सभी तालिकाओं को कैसे सूचीबद्ध करूं?

  3. लिंक किए गए सर्वर (शून्य) के लिए OLE DB प्रदाता MSDASQL के डेटा स्रोत ऑब्जेक्ट को प्रारंभ नहीं कर सकता

  4. SQL सर्वर 2005 में संग्रहीत कार्यविधि में तालिका को अद्यतन करने के लिए if-else शर्त

  5. सक्रिय निर्देशिका समूह सदस्यता के लिए C# clr udf