SQL语句实现子孙树查询经典实例

SQL语句实现子孙树查询经典实例,第1张

下面介绍的SQL语句非常经典,该SQL语句实现子孙树查询,该SQL语句可以直接在查询分析器中执行,供您参考。

--生成表

create table MENU(id int,mname char(50),parent int)

--插入数据

insert into MENU

select 1,'新闻',Null union all

select 2,'房产',Null union all

select 3,'科技新闻',1 union all

select 4,'社会新闻',1 union all

select 5, 'IT新闻',3 union all

select 6, '航天新闻',3

--实现查询新闻子孙树

Declare @s varchar(1000)

select @s=','+cast(id as varchar(20))+'' from MENU where id=1 while @@rowCount>0

--charindex:返回字符串中指定表达式的起始位置

select @s=@s+','+cast(id as varchar) from MENU

where charindex(','+cast(id as varchar)+',',@s+',')=0

and charindex(','+cast(parent as varchar)+',',@s+',')>0

select from MENU where charindex(','+cast(id as varchar)+',',@s+',')>0

--删除表

drop table MENU

你这写法是正确的,至少递归的数据已达到只是显示方式不一样

加个记录字段,并按记录字段排序即可完成以下效果:

--修改如下:

WITH rec(warecode,waresupercode,waerName,sort)

as

(

select warecode,waresupercode,waerName,warecode from DIC_WARE dw where dwwaresupercode IS NULL

UNION all

SELECT warecode,waresupercode,waerName,sort+'| '+warecode

from DIC_WARE a ,rec b on awaresupercode=bwarecode

)

SELECT warecode,waresupercode,waerName

FROM rec order by sort

GO

测试数据效果图下:

希望能帮到你!

以上就是关于SQL语句实现子孙树查询经典实例全部的内容,包括:SQL语句实现子孙树查询经典实例、sqlserver2008树查询,急急急,求大神教育、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10154045.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存