Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Urutan hierarki dari hasil kueri rekursif di SQL 2005

Salah satu cara Anda dapat melakukannya adalah dengan menambahkan kolom hierarki yang memiliki semua ID sebelumnya dalam daftar:

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

Perhatikan bahwa ini mengasumsikan bahwa TaskId adalah ID berbasis string. Jika tidak, Anda harus mentransmisikannya ke varchar sebelum menggabungkannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Urutan pemasangan/pencopotan VS 2008 dan SQL Server 2008

  2. SQL Server membuat tabel dengan indeks berkerumun tanpa kunci utama

  3. Cara memperbaiki "Server tidak dikonfigurasi untuk RPC" Msg 7411 menggunakan T-SQL

  4. Permintaan PIVOT pada catatan Berbeda

  5. Webinar :Pelacakan Kemajuan Kueri di SQL Server