自定义函数

格式

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()

 

自定义的表值函数

create   function   tvpoints()
returns   @points  table   (x  float  , y   float  )
as   begin
insert   @points  values  (1,2);
insert   @points  values  (3,4);
return  ;
end

 

posted @ 2021-12-27 20:50  乌柒柒  阅读(440)  评论(0)    收藏  举报