sql函数返回数据集

USE [bpmdb]
GO


/****** Object:  UserDefinedFunction [dbo].[f_GetTree]    Script Date: 05/07/2015 12:44:16 ******/
SET ANSI_NULLS ON
GO


SET QUOTED_IDENTIFIER ON
GO


--模块:查询指定制定科目的汇总值
--时间:2014.12.23
--编写人: lj


--SELECT a.Code, a.ouname, lvl
--FROM BPMSysOUs a
--    JOIN dbo.f_GetTree(59) b
--       ON  a.OUID = b.ID   where  OULevel ='部门'
       
       
       




ALTER FUNCTION [dbo].[f_GetTree]
(
    @ID AS INT=NULL
)
RETURNS @r TABLE
(
    ID INT,
    lvl INT,
    px VARBINARY(8000)
)
AS
BEGIN
    DECLARE @lvl INT   
    SET @lvl = 0 
   
    IF ISNULL(@ID,0)<>0
       INSERT @r VALUES(@ID,@lvl,CAST(@ID AS VARBINARY))
    ELSE
       INSERT @r
       SELECT OUID, @lvl ,CAST(OUID AS VARBINARY)
       FROM BPMSysOUs
       WHERE  ParentOUID is null 
        
    WHILE @@rowcount>0
    BEGIN
        SET @lvl = @lvl+1;  
        INSERT @r
        SELECT a.OUID, @lvl ,b.px+CAST(a.OUID AS VARBINARY)
        FROM BPMSysOUs a
        JOIN @r b
            ON  a.ParentOUID = b.ID
                AND b.lvl = @lvl-1
    END
    RETURN;
END


GO



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值