Home  >  Article  >  Database  >  SQL语句实现子孙树查询经典实例

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

WBOY
WBOYOriginal
2016-06-07 14:54:312091browse

下面介绍的 SQL语句 非常 经典 ,该 SQL语句实现 子孙树 查询 ,该 SQL语句 可以直接在 查询 分析器中执行,供您参考。 --生成表 createtableMENU(idint,mnamechar(50),parentint) --插入数据 insertintoMENU select1,'新闻',Nullunionall select2,'房产',

下面介绍的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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn