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

kueri rekursif t-sql

Berikut ini contoh CTE untuk melakukannya:

declare @t table (id int, name varchar(max), parentid int)

insert into @t select 1,     'project'  , 0
union all select 2,     'structure' , 1
union all select 3,     'path_1'    , 2
union all select 4,     'path_2'    , 2
union all select 5,     'path_3'    , 2
union all select 6,     'path_4'    , 3
union all select 7,     'path_5'    , 4
union all select 8,     'path_6'    , 5

; with CteAlias as (
    select id, name, parentid
    from @t t
    where t.parentid = 0
    union all
    select t.id, parent.name + '\' + t.name, t.parentid
    from @t t
    inner join CteAlias parent on t.parentid = parent.id
)
select * 
from CteAlias


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan nilai baris T-SQL

  2. Kinerja SQL Server IN vs. EXISTS

  3. Cara Membuat Riwayat ATAU Tampilan Audit dari Tabel Change Data Capture (CDC) di SQL Server - Tutorial SQL Server

  4. Buat daftar dinamis nilai pernyataan INSERT

  5. Msg 102, Level 15, State 1, Line 1 Sintaks salah di dekat ' '