请教:通过深度搜索算法实现数的遍历(急) http://expert.csdn.net/Expert/topic/2285/2285830.xml?temp=.1570551/*--树形数据处理方案 树形数据的排序,新增,修改,复制,删除,数据完整性检查,汇总统计--邹建 2003.9--*/ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/TopicView1.asp?id=2500191 /*--按父找子--*/declare @a table (TC_Id int,TC_PID int,TC_Name varchar(200))insert @a values(1,0,'中国')insert @a values(2,0,'美国')insert @a values(3,0,'加拿大')insert @a values(4,1,'北京')insert @a values(5,1,'上海')insert @a values(6,1,'江苏')insert @a values(7,6,'苏州')insert @a values(8,7,'常熟')insert @a values(9,6,'南京')insert @a values(10,6,'无锡')insert @a values(11,2,'纽约')insert @a values(12,2,'旧金山')declare @tmp1 table (TC_Id int,TC_PID int,TC_Name varchar(200),lev int)insert @tmp1 select *,1 from @a where tc_ID=1while @@rowcount>0 insert @tmp1 select a.*,1 from @a a,@tmp1 b where a.tc_pid=b.tc_ID and a.tc_ID not in (select tc_ID from @tmp1)select * from @tmp1/*--按子找父--*/--建立环境declare @a table (TC_Id int,TC_PID int,TC_Name varchar(200))insert @a values(1,0,'中国')insert @a values(2,0,'美国')insert @a values(3,0,'加拿大')insert @a values(4,1,'北京')insert @a values(5,1,'上海')insert @a values(6,1,'江苏')insert @a values(7,6,'苏州')insert @a values(8,7,'常熟')insert @a values(9,6,'南京')insert @a values(10,6,'无锡')insert @a values(11,2,'纽约')insert @a values(12,2,'旧金山')declare @tmp1 table (TC_Id int,TC_PID int,TC_Name varchar(200))--开始结点insert @tmp1 select * from @a where tc_ID=10--循环得到while @@rowcount>0 insert @tmp1 select a.* from @a a,@tmp1 b where a.tc_id=b.tc_pID and a.tc_ID not in (select tc_ID from @tmp1)--显示结果select * from @tmp1/*--遍厉所有--*/declare @你的表 table (sortid int,parid int,sortname varchar(20))insert @你的表 values(28,0,'包装')insert @你的表 values(63,0,'安全防护')insert @你的表 values(64,0,'办公')insert @你的表 values(73,0,'电脑')insert @你的表 values(74,63,'锁具')insert @你的表 values(75,63,'防盗门')insert @你的表 values(118,75,'普通防盗门')insert @你的表 values(119,75,'豪华防盗门')insert @你的表 values(120,28,'文化用纸')insert @你的表 values(121,28,'包装用纸')insert @你的表 values(122,28,'纸浆')insert @你的表 values(123,63,'保险柜')insert @你的表 values(124,63,'防身用具')insert @你的表 values(125,73,'主机 ')insert @你的表 values(126,73,'机箱')insert @你的表 values(127,73,'软件')insert @你的表 values(128,127,'财务软件')insert @你的表 values(129,127,'系统管理软件')insert @你的表 values(130,127,'工具软件软件')insert @你的表 values(131,127,'数据库软件')declare @tmp1 table (sortid int,parid int,sortname varchar(20),层次 int,所属分组 int)declare @i int,@j intselect @i=1,@j=1while exists(select 1 from @你的表 where parid=0 and sortid not in (select sortid from @tmp1))begin insert @tmp1 select top 1 *,@i,@j from @你的表 where parid=0 and sortid not in (select sortid from @tmp1) order by sortid while @@rowcount>0 begin set @i=@i+1 insert @tmp1 select a.*,@i,@j from @你的表 a,@tmp1 b where a.parid=b.sortid and a.sortid not in (select sortid from @tmp1) end select @j=@j+1,@i=1endselect * from @tmp1 触发器Inserted表的问题-------------急!!!!!! 数据归档与数据分区 谁有基于SQL2000+JSP+jdbc的BBS论坛简易实例丫 sql server 2005导入到2000 带有自动编号的记录复制问题 不同客户端发送的update语句,触发器中的inserted、deleted是共享的还是独立的? 小女子的SQL复合语句问题,高手快来帮忙呀~急~! 怎么样优化存储过程,或者用什么方法代替游标 IF判断很纠结的问题 关于sql数据库实时同步工具问题 !!!!!!!!临时表是否无法跨越存储过程呢---------------------请进来看看!· 查询语句
declare @a table (TC_Id int,TC_PID int,TC_Name varchar(200))
insert @a values(1,0,'中国')
insert @a values(2,0,'美国')
insert @a values(3,0,'加拿大')
insert @a values(4,1,'北京')
insert @a values(5,1,'上海')
insert @a values(6,1,'江苏')
insert @a values(7,6,'苏州')
insert @a values(8,7,'常熟')
insert @a values(9,6,'南京')
insert @a values(10,6,'无锡')
insert @a values(11,2,'纽约')
insert @a values(12,2,'旧金山')declare @tmp1 table (TC_Id int,TC_PID int,TC_Name varchar(200),lev int)
insert @tmp1 select *,1 from @a where tc_ID=1
while @@rowcount>0
insert @tmp1 select a.*,1 from @a a,@tmp1 b where a.tc_pid=b.tc_ID and a.tc_ID not in (select tc_ID from @tmp1)
select * from @tmp1/*--按子找父--*/
--建立环境
declare @a table (TC_Id int,TC_PID int,TC_Name varchar(200))
insert @a values(1,0,'中国')
insert @a values(2,0,'美国')
insert @a values(3,0,'加拿大')
insert @a values(4,1,'北京')
insert @a values(5,1,'上海')
insert @a values(6,1,'江苏')
insert @a values(7,6,'苏州')
insert @a values(8,7,'常熟')
insert @a values(9,6,'南京')
insert @a values(10,6,'无锡')
insert @a values(11,2,'纽约')
insert @a values(12,2,'旧金山')declare @tmp1 table (TC_Id int,TC_PID int,TC_Name varchar(200))--开始结点
insert @tmp1 select * from @a where tc_ID=10--循环得到
while @@rowcount>0
insert @tmp1 select a.* from @a a,@tmp1 b where a.tc_id=b.tc_pID and a.tc_ID not in (select tc_ID from @tmp1)--显示结果
select * from @tmp1/*--遍厉所有--*/
declare @你的表 table (sortid int,parid int,sortname varchar(20))
insert @你的表 values(28,0,'包装')
insert @你的表 values(63,0,'安全防护')
insert @你的表 values(64,0,'办公')
insert @你的表 values(73,0,'电脑')
insert @你的表 values(74,63,'锁具')
insert @你的表 values(75,63,'防盗门')
insert @你的表 values(118,75,'普通防盗门')
insert @你的表 values(119,75,'豪华防盗门')
insert @你的表 values(120,28,'文化用纸')
insert @你的表 values(121,28,'包装用纸')
insert @你的表 values(122,28,'纸浆')
insert @你的表 values(123,63,'保险柜')
insert @你的表 values(124,63,'防身用具')
insert @你的表 values(125,73,'主机 ')
insert @你的表 values(126,73,'机箱')
insert @你的表 values(127,73,'软件')
insert @你的表 values(128,127,'财务软件')
insert @你的表 values(129,127,'系统管理软件')
insert @你的表 values(130,127,'工具软件软件')
insert @你的表 values(131,127,'数据库软件')
declare @tmp1 table (sortid int,parid int,sortname varchar(20),层次 int,所属分组 int)
declare @i int,@j int
select @i=1,@j=1while exists(select 1 from @你的表 where parid=0 and sortid not in (select sortid from @tmp1))
begin
insert @tmp1 select top 1 *,@i,@j from @你的表 where parid=0 and sortid not in (select sortid from @tmp1) order by sortid
while @@rowcount>0
begin
set @i=@i+1
insert @tmp1 select a.*,@i,@j from @你的表 a,@tmp1 b where a.parid=b.sortid and a.sortid not in (select sortid from @tmp1)
end
select @j=@j+1,@i=1
end
select * from @tmp1