当前位置:数据库 > SQLServer >>

sql server 求大神 解决递归问题

一张表有三个字段 id,up_id,route,每条数据中up_id是该id的上级id,我想写一条语句或者写一个存储过程,生成route字段里面的内容: route的生成规则是,该条数据的id +’,‘+该条数据的上级route。
答案:这个需要写一个函数来做。
CREATE FUNCTION [dbo].[fget_route]
(
 @cId  VARCHAR(10),
 @croute VARCHAR(8000)
)
RETURNS varchar(8000)
AS
BEGIN
 DECLARE @uproute VARCHAR(1000)
 DECLARE @up_Id VARCHAR(10)
 IF @cId <> '0' AND @cId <> '' BEGIN
  --取到上级ID
  SELECT @up_Id = up_Id FROM [532信息] WHERE id = @cId
  --取上级route
  SELECT @uproute = [route] FROM [532信息] WHERE id = @up_Id
  IF @croute <> '' BEGIN
   SET @croute = @cId+','+@uproute+ ',' +@croute
  END  
  ELSE BEGIN
   SET @croute = @cId+','+@uproute
  END
  RETURN dbo.fget_route(@up_Id,@croute)
 END
 
 RETURN @Allroute
END
--版权所有:532信息网

上一个:SQL server 2005安装问题。
下一个:SQL server2005怎么实现图形化操作

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,