CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

求一条涉及到自连接的表的SQL语句!

楼主xmlscript(C++还真是个好东西)2005-11-04 17:31:59 在 MS-SQL Server / 疑难问题 提问

有一个自连接的表[表1]:  
  id   name   父级ID  
  1       john     null  
  2       bill     null  
  3       tom       2  
  4       lily     3  
  5       bob       null  
  6       heny     1  
  可以看的出来,这个表实际上是一个树型结构的,我想将其用asp以树状列表的形式表现出来。我期望的结果是:  
   
  ___john  
  ______heny  
  ___bill  
  ______tom  
  __________lily  
  ___bob  
   
  无法用一条sql语句实现,应该是用“存储结构”吧,怎么实现?谢谢,请赐教! 问题点数:10、回复次数:8Top

1 楼wgsasd311(自强不息)回复于 2005-11-04 18:23:28 得分 0

10?Top

2 楼xmlscript(C++还真是个好东西)回复于 2005-11-04 18:26:07 得分 0

你说10是什么意思?是不是指我给的分儿?那是我的全部。Top

3 楼xmlscript(C++还真是个好东西)回复于 2005-11-06 09:39:17 得分 0

自己顶!Top

4 楼xmlscript(C++还真是个好东西)回复于 2005-11-08 09:49:21 得分 0

再顶~Top

5 楼xiaoyan21(明月心)回复于 2005-11-10 10:12:53 得分 0

这好像不行吧,  
   
  应试用递归来实现的,  
   
  不过可以试试   游标   !  
  Top

6 楼xmlscript(C++还真是个好东西)回复于 2005-11-13 09:56:29 得分 0

555~没解决,白发一贴。Top

7 楼scmail81(琳·风の狼(修罗))回复于 2005-11-13 10:50:43 得分 10

create   table   表1  
  (  
        id     int   ,  
        name     varchar(10),  
        父级ID     int  
  )  
  insert   表1  
  select   1,'john',NUll   union  
  select   2,'bill',NUll   union  
  select   3,'tom',2   union  
  select   4,'lity',3   union  
  select   5,'bob',NUll   union  
  select   6,'heny',1  
   
  CREATE   PROC   P_QRY  
  AS  
  DECLARE   @t   TABLE(id   int,Parent_item   varchar(100),Level   int)  
  DECLARE   @i   int  
  DECLARE   @j   int  
  DECLARE   @T1   varchar(100)  
  set   @T1='___'  
  SET   @i=0  
  INSERT   @t   SELECT   id,@T1+name,@i   from     表1   where   父级ID   is   null  
  while   @@ROWCOUNT>0  
  begin  
          SET   @i=@i+1  
          SET   @j=0  
          while   @j<@i      
          begin    
                set     @T1=@T1+'___'    
                set   @j=@j+1          
          end  
          INSERT   @t   SELECT   A.id,@T1+A.name,@i   from     表1   A,@t   b   where   b.id=A.父级ID   and   b.Level=(@i-1)  
  end    
  select   Parent_item   from   @t   order   by   id,LevelTop

8 楼tanweibiao2000(延平)回复于 2005-11-13 18:09:41 得分 0

scmail81(freedom)   写的不够灵活。。。  
  如果再插入两条数据   就不行了    
  insert   表1  
  select   1,'john',NUll   union  
  select   2,'bill',NUll   union  
  select   3,'tom',2   union  
  select   4,'lity',3   union  
  select   5,'bob',NUll   union  
  select   6,'heny',1   union  
  select   7,'aaa',4   union  
  select   8,'bbb',7    
   
  Top

相关问题

  • 求助:三个表之间复杂关联,并且涉及到if语句的sql语句~~~
  • 大难度的SQL语句.涉及四个表之间的关系
  • 修改表的sql语句
  • 多表查询SQL语句?
  • 更新表SQL语句
  • SQL语句挑战透视表
  • 如何用SQL语句创建表!
  • sql语句多表连接问题!
  • SQL语句或动态建表问题?
  • 如何用SQL语句给表改名?

关键词

  • tom
  • john
  • null
  • unionselect
  • heny
  • 表
  • 父级
  • bob
  • bill
  • 实现

得分解答快速导航

  • 帖主:xmlscript
  • scmail81

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo