sql server 樹狀態 層狀態 查詢

sql server 樹狀態 層狀態 查詢 在原表無進深字段時使用。

用路徑來識別

 

WITH Tree
as(
SELECT p.CommentId, p.ParentCId,cast(right(replicate('0',5)+CONVERT(nvarchar(100), ROW_NUMBER()over(order by createtime)),5)as nvarchar(1000))path FROM IMComment(nolock) P WHERE P.ParentCId = '00000000-0000-0000-0000-000000000000'
union all
select * from( select c.CommentId, c.ParentCId,cast(t.path+'/'+ right(replicate('0',5)+CONVERT(nvarchar(100),ROW_NUMBER()over(order by createtime)),5) as nvarchar(1000))path  FROM IMComment(nolock) c 
INNER JOIN Tree T ON C.ParentCId = T.CommentId) c
)
select * from Tree t order by t.path

 

主要是path這個參數花了比較長的時間研究。。

先前用了只用了rowid,但排序總不能滿意。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章