表结构: t_test
treeid personid pid
00010002 002 001
000100020003 003 002
000100020004 004 002
00010002000030001 005 003比如select * from t_test where pid='002' 得到的是002中的子记录
现在怎么得到002子记录中有子记录的呢?
如上结果就只得到personid=003这条记录.而004就不是,因为它没有子记录.
急啊..帮帮我.`!!!!!!!
treeid personid pid
00010002 002 001
000100020003 003 002
000100020004 004 002
00010002000030001 005 003比如select * from t_test where pid='002' 得到的是002中的子记录
现在怎么得到002子记录中有子记录的呢?
如上结果就只得到personid=003这条记录.而004就不是,因为它没有子记录.
急啊..帮帮我.`!!!!!!!
解决方案 »
- [sql]求sql如何精度绑定???????????????????????????????????????、111222222222211111111
- 紧急求助一条sql语句的写法,高分送上
- sql 语言date类型问题
- 在MSSQL2000中建一个表存储文章题目和内容,字段名为name varchar(250),content text
- 安装SQL Server 2000 时出现的问题,求助
- SQL怎么做能才横排显示呢
- SQL2000修改协议
- sqlServer中Sum函数碰到null不做了?
- 以下问题SQL语句如何写?
- 为什么从视图中返回不了记录?
- 求一个作业的SQL语句...
- 在vb上调用一个SqlServer的存储过程,返回不了结果集,怪事,大家来看看
where pid='002'
and exists (
select 1 from t_test
where pid=a.personid
)
(
Select personId From t_test Where pid = '002'
)
create table tb
(
personid char(3),
pid char(3)
)insert tb
select '002','001' union all
select '003','002' union all
select '004','002' union all
select '005','003'
gocreate proc getChildren(@personid char(3))
as
create table #temp
(
personid char(3),
pid char(3),
leve int
)declare @Level int
set @Level=0insert #temp
select personid,pid,@Level from tb where personid=@personidwhile @@rowcount>0
begin
set @Level=@Level+1 insert #temp
select a.personid,a.pid,@Level from tb a,#temp b where a.pid=b.personid and b.leve=@Level-1
end select *from #temp