求sql查询语句

来源:百度知道 编辑:UC知道 时间:2024/05/13 11:39:01
有一个表如下
ID,名字,ID号....
1,a,25....
2,b,26
.
.
.
25,dd,158...
.
.
.
158,ghgh,595....
希望输入条件ID=1,得到这样的
1,a,25...
25,dd,158...
158,ghgh,595....
可能有很多层

declare @sql varchar(max)
declare @i int
set @i = 1
set @sql = 'select * from 表名 where ID = ' + convert(varchar, @i)
while (select ID号 from 表名 where ID = @i) is not null
begin
set @sql = @sql + ' union all '
set @i = (select ID号 from 表名 where ID = @i)
set @sql = @sql + 'select * from 表名 where ID = ' + convert(varchar, @i)
end
exec (@sql)

已经测试过了,正确。
如果你输入的条件是ID=2和话,把里面的set @i = 1改成set @i = 2就行。
也可以做一个存储过程,把@i作为一个变量输入,如果需要的话我帮你加。

算了,我把我创建的测试表和整个过程都发出来吧……

--创建表
create table Circle
(
ID int,
名字 varchar(10),
ID号 int
)

--插入数据
insert into Circle values (1, 'a', 52)
insert into Circle values (2, 'a', 53)
insert into Circle values (3, 'a', 54)
insert into Circle values (4, 'a', null)
insert into Circle values (52, 'a', 158)
insert into Circle values (53, 'a'