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
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.