sql server 前序排序

这是从其他网友那边学习修改过来的。

印象中好像是sqlserver 2008及以上支持with写法。

WITH cte ( id, parentid, ExacctName,rn )
AS ( SELECT id ,
parentid ,
ExacctName ,rn=cast(code as varchar(max))
FROM Exacct a
WHERE a.parentid  is null
UNION ALL
SELECT b.id ,
b.parentid ,
b.ExacctName,rn=c.rn+cast(b.code AS VARCHAR(MAX))
FROM Exacct b
INNER JOIN cte c ON b.parentid = c.id
)
SELECT *
FROM cte order by rn

posted @ 2017-01-11 11:18  Sefrid  阅读(98)  评论(0编辑  收藏  举报