SQL2005遞迴查詢語法

2021-08-26 22:02:58 字數 1340 閱讀 4287

create table code_catalog_structure(catalogid nvarchar(10),col varchar(10),parentid nvarchar(10))

insert into code_catalog_structure select '我是一層的一','aaa','*root*'

insert into code_catalog_structure select '我是一層的二','bbb','*root*'

insert into code_catalog_structure select '我是二層的一','ccc','我是一層的一'

insert into code_catalog_structure select '我是二層的二','ddd','我是一層的二'

insert into code_catalog_structure select '我是三層的一','eee','我是二層的一'

insert into code_catalog_structure select '我是三層的二','fff','我是二層的二'

insert into code_catalog_structure select '我是三層的三','ggg','我是二層的二'

go;with father as

(select *,lev=0,seq=cast(catalogid as varbinary) from code_catalog_structure where parentid = '*root*'

union all

select a.*,lev=lev+1,seq=cast(seq+cast(a.catalogid as varbinary) as varbinary) from code_catalog_structure a join father b on a.parentid = b.catalogid

)select parentid,catalogid,lev,seq from father order by seq

/*parentid catalogid lev

---------- ---------- -----------

*root* 我是一層的一 0

我是一層的一 我是二層的一 1

我是二層的一 我是三層的一 2

*root* 我是一層的二 0

我是一層的二 我是二層的二 1

我是二層的二 我是三層的二 2

我是二層的二 我是三層的三 2

(7 行受影響)

*/go

drop table code_catalog_structure

sql2005 的樹形遞迴查詢

在sqlserver中從2005開始支援樹形遞迴查詢,其方法如下 從給定的根節點 可以是多個 向下查詢,直到所有子節點 with myt2 as select from 表名 where 根節點查詢條件 union all select 表名.from myt2 inner join 表名 on m...

SQL2005實現表記錄遞迴查詢

if not object id tb is null drop table tb gocreate table tb id int,parid int insert tb select 1,0 union all select 2,0 union all select 3,0 union all ...

sql2005多欄位模糊查詢

create proc getlikesql colvalue varchar 30 asdeclare colcount int declare tbname varchar 50 declare sql varchar 8000 declare i int set i 1 select colc...