您的位置:首页 > 数据库

sql递归

2015-06-08 21:30 369 查看
alter   PROCEDURE  findPlace
(  
   @pid int --参数
)
as
begin
	declare @c int
	DECLARE @p INT
	DECLARE @i int
	SET @c=0
	SET @i=0
	SELECT @c=(select COUNT(*) FROM pre_common_district WHERE node_id=@pid)
	WHILE(@c>0)
	begin
		SELECT * FROM pre_common_district WHERE node_id=@pid
		SELECT @p=(select TOP 1 id3 FROM pre_common_district WHERE node_id=@pid AND id1 NOT IN(SELECT TOP (@i) t.id1 FROM pre_common_district t WHERE node_id=@pid))
		exec findPlace @p;
		SELECT @c=@c-1;
		select @i=@i+1;
	end
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: