以sql server為例: 1、表值函數 用戶定義表值函數返回 table 數據類型,表是單個 SELECT 語句的結果集。 示例代碼CREATE FUNCTION Test_GetEmployeeSalary ( @EmployeeID VARCHAR(20) --參數)RETURNS TABL ...
以sql server為例:
1、表值函數
用戶定義表值函數返回 table 數據類型,表是單個 SELECT 語句的結果集。
示例代碼CREATE FUNCTION Test_GetEmployeeSalary
(
@EmployeeID VARCHAR(20) --參數
)
RETURNS TABLE --返回類型為表
AS
RETURN
(
SELECT * FROM dbo.TEmployee
WHERE EmployeeID = @EmployeeID --通過一條sql查詢語句獲取表中數據
)
--函數調用
SELECT * FROM Test_GetEmployeeSalary('1')
---------------------
2、標量值函數
函數很簡單返回一個整型值,然後就可以在存儲過程中調用了,不過調用的方式有所不同,象上面的表值函數調用是不需要所有者的,只要寫函數名稱就可以,對於標量值函數來說,是需要加上所有者的,比如所有者是dbo。示例代碼:
CREATE FUNCTION dbo.Test_GetMax
(
@a INT, --函數的兩個參數
@b INT
)
RETURNS INT --返回類型為INT
AS
BEGIN
DECLARE @max INT;
IF(@a>=@b)
BEGIN
SET @max = @a;
END
ELSE
BEGIN
SET @max = @b
END
RETURN @max; --最後return返回@max中的值
END
--調用函數
SELECT dbo.Test_GetMax(2,3);
註意:
(1)必須使用兩部分組成函數的名字來調用函數,即所有者.對象名,如dbo.Test_GetMax(2,3)
(2)所有的傳入參數前必須加@
(3)不要寫漏和寫錯關鍵字,如as,returns,return
(4)returns後面不是跟一個變數,而是跟變數的返回值類型
(5)在begin/end語句塊中,使用的是return
轉自:https://blog.csdn.net/luming666/article/details/78532695