乖,别哭的薄壳
~一份耕耘,一份收获~
posts - 23,comments - 260,trackbacks - 0

MS SQL Server中

tb_city表结构如下
id      name      parentid
1      湖北      0
2      湖南      0
3      武汉      1
4      仙桃      1
5      长沙      2
6      蔡甸      3

定义函数
create function c_tree(@initid int)/*定义函数c_tree,输入参数为初始节点id*/
returns @t table(id int,name varchar(100),parentid int,lev int)/*定义表t用来存放取出的数据*/
begin
  declare @i int/*标志递归级别*/
  set @i=1
  insert @t select id,name,parentid,@i from tb_city where id=@initid
  while @@rowcount<>0
  begin
  set @i=@i+1
  insert @t select a.id,a.name,a.parentid,@i from tb_city as a,@t as b
 where b.id=a.parentid and b.lev=@i-1
  end
return
end

执行
使用函数
select * from c_tree(1) /*取湖北下面的子节点*/

Oracle中的实现

select *  from TB_CITY
/*此处可写WHERE语句限制*/
start with ID=1
connect by prior ID=PARENTID

posted on 2007-02-06 17:24 小祝 阅读(5775) 评论(5)  编辑  收藏 所属分类: 数据库

FeedBack:
# re: 用sql实现递归[未登录]
2007-02-07 14:24 | 小祝
帖这么多啊,呵呵,写的不是很清晰啊。。。  回复  更多评论
  
# re: 用sql实现递归
2007-02-10 21:55 | 施伟
。。。不懂,惭愧!  回复  更多评论
  
# re: 用sql实现递归
2007-02-12 12:23 | 梅颖
又没有人说你。。呵呵,你就装知道洒,他也不知道你不知道  回复  更多评论
  
# re: 用sql实现递归
2007-02-12 19:39 | 小祝
治学要严谨~
我们老师常说的。。。  回复  更多评论
  
# re: 用sql实现递归
2010-02-09 15:11 | 恩爱情仇
这句话好熟悉啊。。!!
伤心!!!!
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: