SQL树型排序
来源:互联网 发布:浙江农家乐数据 编辑:程序博客网 时间:2024/06/05 17:18
典型在树形排序:
create table #t(id int,parentid varchar(10))
insert into #t
select 1, 0 union all
select 3 ,0union all
select 4 ,3union all
select 5 ,3union all
select 6 ,1
--查询处理的代码
SELECT *
FROM #t a
LEFT JOIN #t b ON a.parentid=b.id
ORDER BY CASE
WHEN b.parentid IS NULL THEN a.id
WHEN b.parentid=0 THEN b.id
ELSE b.parentid END,
CASE
WHEN b.parentid=0 THEN a.id
ELSE a.parentid END,
a.id
在此感谢 duanzhi1984 提供示例
再次感谢 duanzhi1984 给出以下补充:
--以上就是答案,但以上的查询是有条件的,就是递归的内容不超过三个(父子关系不超过三代)
--若递归多的话,怎么办呢?
--想了个办法就是利用以下语句完成。
with cte(id1,id,parentid)
as
(select cast(row_number() over(order by id) as varchar(10)) id1,*from #t where parentid=0
union all
select cast(id1+cast(row_number() over(order by a.id)as varchar(10)) as varchar(10)),a.* from #t a join cte on cte.id=a.parentid )
select id,parentid from cte order by id1
转载于:
http://blog.csdn.net/duanzhi1984/archive/2010/08/13/5809356.aspx
- SQL树型排序
- 排序SQL
- Sql 排序
- sql排序
- sql 排序
- SQL排序
- sql 排序
- sql 排序
- SQL 排序
- sql 排序
- SQL 排序
- SQL Server 树型结构查询指定节点 SQL Server 树型结构查询的排序
- sql中字符串型数字排序
- sql中字符串型数字排序
- sql中字符串型数字排序
- SQL数据排序 (转贴)
- sql 分组排序
- Ms Sql 随机排序
- js join函数的使用方法
- 遍历CheckBox
- NHibernate简介 基础教程
- 被人为割裂的中国互联网
- 父亲奔波18年为儿治病 22岁儿子终于当上小学生
- SQL树型排序
- FFMpeg中apiexample.c例子分析
- Spring.net 基础教程快速上手指南
- WCF传输图片解决方案
- 一些类型转换函数示例
- IRS(JLBK)日常运维(sqlldr装数等)AIX平台日志WIN下查看的解决方案
- 关于数据集与源代码
- 端口 使用 查看 pid
- ....帝国同学的截图软件 ----