sql-server – SQL Server 2005中的SORTING分层查询
发布时间:2020-12-12 07:09:07 所属栏目:MsSql教程 来源:网络整理
导读:我有以下问题:我有一个用于维护分层数据的表.我想在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 FRO
我有以下问题:我有一个用于维护分层数据的表.我想在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 但我想按代码排序,结果如下: 1 1/1 1/1/1 1/1/2 1/2/1 1/2/2 2 4/1 等任何想法? 解决方法要获取连接值,您需要在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 此外,如果代码不是varchar,则必须转换此代码(tree.code’/’ofs.code)中的代码列才能使其工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SQL Server – 删除并重新创建表 – 在执行此
- sql-server-2008 – 如何在镜像时解决sql server中的错误:
- SqlServer系列笔记――用户自定义函数
- 注册远程服务器到本地后以别名访问
- 阿拉伯数字金额转换为中文大写之存储过程(更新版)
- 数据库设计 – 使用Redis的地理程序设计建议
- tsql – Great Circle Distance公式:T-SQL
- .net – LINQ2SQL:加载匿名实体时如何修改字段值?
- 关于SQLServer2005的学习笔记――约束、Check、触发器的执行
- 10年磨一剑,软件编程走火入魔之:把简单的功能做个彻彻底底