格式
CREATE FUNCTION function_name(@parameter_name parameter_data_type)
--CREATE FUNCTION 函数名称(@参数名 参数的数据类型)
RETURNS date_type --返回返回值的数据类型
[WITH ENCRYPTION] --若是指定了 encryption 则函数被加密
[AS]
BEGIN
function_body --函数体(即 Transact-SQL 语句)
RETURN 表达式;
END
用户自定义函数的类型:
一、标量值函数(返回一个标量值)
CREATE FUNCTION fn_splitPgCode(
@s varchar(8000),
@splitchar VARCHAR(5),
@num INT
)RETURNS VARCHAR(1000)
AS
BEGIN
Declare @s1 varchar(1000)
SET @s1 = '-'
SELECT @s1 = col FROM dbo.f_splitSTR(@s,@splitchar) WHERE id = @num
RETURN @s1
END
调用方法:单独使用 SELECT dbo.fn_splitPgCode('5-1-56ǒǜ5-2-56ǒǜ5-3-56','ǒǜ',1)
和 table配合使用 SELECT dbo.fn_splitPgCode(pgIDCode,'ǒǜ',1) FROM pgdlyDetail
二、表格值函数(内联表格值函数、多语句表值函数,返回一个结果集即返回多个值
CREATE FUNCTION fn_GoodsStocks()
RETURNS TABLE
AS
RETURN
(
SELECT * FROM dbo.pgdlyDetail
)
调用: SELECT * FROM dbo.fn_GoodsStocks()