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

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

 
 
 
  1. --生成表  
  2. create table MENU(id int,mname char(50),parent int)  
  3.  
  4. --插入数据  
  5. insert into MENU   
  6. select 1,'新闻',Null union all  
  7. select 2,'房产',Null union all  
  8. select 3,'科技新闻',1 union all  
  9. select 4,'社会新闻',1 union all  
  10. select 5, 'IT新闻',3 union all  
  11. select 6, '航天新闻',3   
  12.  
  13. --实现查询新闻子孙树  
  14. Declare @s varchar(1000)   
  15. select @s=','+cast(id as varchar(20))+'' from MENU where id=1 
  16.  
  17. while  @@rowCount>0   
  18.  
  19. --charindex:返回字符串中指定表达式的起始位置  
  20.   select   @s=@s+','+cast(id as varchar) from MENU       
  21.             where charindex(','+cast(id as varchar)+',',@s+',')=0    
  22.    
  23.             and   charindex(','+cast(parent as varchar)+',',@s+',')>0   
  24.  
  25.  
  26. select * from MENU where charindex(','+cast(id as varchar)+',',@s+',')>0  
  27.  
  28. --删除表  
  29.  
  30. drop table MENU  

 

 

 

【编辑推荐】

查询表结构的SQL语句

使用SQL语句查询时间段

巧用SQL语句删除重复记录

批量执行SQL语句的示例

教您使用SQL语句修改SQL主键

 

THE END