sql-server – SQL Server 2005中的SORTING分层查询

前端之家收集整理的这篇文章主要介绍了sql-server – SQL Server 2005中的SORTING分层查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下问题:我有一个用于维护分层数据的表.我想在sql 2005中使用CTE.
WITH tree (id,parentid,code,name) AS
(
    SELECT id,ofs.ParentID,ofs.code,ofs.name
      FROM OrganizationFeatures ofs
     WHERE ofs.ParentID IS NULL

    UNION ALL

    SELECT ofs.id,ofs.name
      FROM OrganizationFeatures ofs
      JOIN tree ON tree.ID = ofs.ParentID
)

select * from tree@H_403_3@ 
 

但我想按代码排序,结果如下:

1
1/1
1/1/1
1/1/2
1/2/1
1/2/2
2
4/1@H_403_3@ 
 

等任何想法?

解决方法

获取连接值,您需要在with中执行此操作.

要进行排序,您需要在最后一次选择中添加订单.

WITH tree (id,tree.code+'/'+ofs.code,ofs.name
      FROM OrganizationFeatures ofs
      JOIN tree ON tree.ID = ofs.ParentID
)

select * from tree order by code@H_403_3@ 
 

此外,如果代码不是varchar,则必须转换此代码(tree.code’/’ofs.code)中的代码列才能使其工作.

猜你在找的MsSQL相关文章