一条sql语句顺序查询出父类的所有子类 如下图:用的是sql Server 2008 20

idnameparentId1帮助02新闻03简介14新手上路15通知26公告27找回密码48激活账号4。。。。。要求查询出来时,结果为:1帮助03简介14联系方式17找... id name parentId
1 帮助 0
2 新闻 0
3 简介 1
4 新手上路 1
5 通知 2
6 公告 2
7 找回密码 4
8 激活账号 4
。。。。。
要求查询出来时,结果为:
1 帮助 0
3 简介 1
4 联系方式 1
7 找回密码 4
8 激活账号 4
2 新闻 0
5 通知 2
6 公告 2
展开
 我来答
frogley
2013-08-31 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1077万
展开全部

SQL 2005及以上可以使用CTE实现递归。

with tmp (ID,Name,ParentID,Level,HierarchyCode)
as(
 select ID,Name,ParentID,1,convert(varchar,convert(varchar,ParentID)+'->'+convert(varchar,ID))
 from 表名 where ParentId=0  --已知根节点是0
 UNION ALL
 select a.ID,a.Name,a.ParentID,Level+1,convert(varchar,HierarchyCode+'->'+convert(varchar,a.ID))
 from 表名 a inner join tmp b on a.ParentID=b.ID
)
select * from tmp order by HierarchyCode

 结果如下:

下扬州啊
2013-08-31 · TA获得超过2519个赞
知道大有可为答主
回答量:4870
采纳率:40%
帮助的人:2120万
展开全部
一条sql肯定实现不了的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
toshiojkx
2013-08-31 · TA获得超过492个赞
知道小有建树答主
回答量:260
采纳率:100%
帮助的人:104万
展开全部
没看出你两个有什么区别...第二个又是以什么排序的?麻烦问题描述清楚一点
需求一清楚了就好回答了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式