[MS-SQL]SQL自訂函數回傳Table

[MS-SQL]SQL自訂函數回傳Table

以往寫T-SQL函數通常都Return一個值,但今天學到也可以回傳Table的資料,底下寫一個範例,針對傳入不同的條件,回傳不同的Table:

 

CREATE FUNCTION [dbo].[Test_Function]
        (@ID int)
RETURNS @TABLE TABLE (
        ID varchar(25),
        Number varchar(25)
                        )
AS
BEGIN  

    IF @ID = 1
        begin
                INSERT INTO @TABLE (ID,Number)
                select 'ID1','ID Number 1'
        end
    else
        BEGIN
                INSERT INTO @TABLE (ID,Number)
                select 'ID2','ID Number 2'
        end

RETURN
END

--測試
SELECT * from Test_Function (2)

 

如果Table欄位太多,太多欄位要定義,可以參考我之前寫的文章,

使用TempTable的方式: http://www.dotblogs.com.tw/kyleshen/archive/2013/10/29/126113.aspx