Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

truy vấn đệ quy t-sql

Đây là một CTE ví dụ để làm điều đó:

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. Định dạng cột ngày giờ &thời lượng sysjobhistory trong SQL Server

  2. Kiểm tra xem bảng có tồn tại hay không và nếu bảng không tồn tại, hãy tạo bảng trong SQL Server 2008

  3. SQl Server Tôi cần sửa lỗi Hết thời gian chờ. Khoảng thời gian chờ đã trôi qua

  4. kết nối với máy chủ sql thông qua ứng dụng .net winform

  5. Khi sử dụng xác thực Trusted_Connection =true và SQL Server, điều này có ảnh hưởng đến hiệu suất không?