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,但排序总不能满意。。

你可能感兴趣的:(.net,.net,core,vb.net,C#,web技术,数据库专题)