sql 自定义函数

我们所说的自定义函数,和数据库中叫“用户自定义函数”是一样的,

自定义函数分为二种,一种是标量值函数,另一种是表格值函数

1 标量值函数 :返回一个标量值

语法:

Create function 函数名(参数)

Returns 返回值数据类型

as

begin

SQL语句(必须有return 变量或值)

End

如示例:

CREATE  FUNCTION MySTR(@strs VARCHAR(50))
RETURNS VARCHAR(50)
AS
BEGIN
 DECLARE @str2 VARCHAR(30)
 SET @str2=@strs
 RETURN @str2
END
 --执行函数
SELECT dbo.MySTR('aa') AS result

在sql 语句也可以这样用:

DECLARE @str3 VARCHAR(30)

 SET @str3=(select name from userinfo where huji=dbo.MySTR('邯郸') and id=23 )

select @str3

2 表格值函数 ,表格值函数有二种(内联表格值函数,多句表格值函数)‘

a 内联表格值函数

语法:

create function 函数名(参数)

returns table

as

return(一条SQL语句)

示例:

CREATE  FUNCTION   tabcmess(@title VARCHAR(10))

RETURNS  TABLE 

AS 

return(select title,des from product where title like '%'+@title+'%')

--执行

SELECT * FROM tabcmess('aaa')

b、 多句表格值函数

   create function 函数名(参数)

   returns 表格变量名table (表格变量定义)

as

   begin

    SQL语句

   end

 示例:

CREATE   function tabcmessalot (@title varchar(10))

Returns @ctable table(title varchar(10) null,des varchar(100) null)

As

Begin

Insert @ctable Select title,des from product WHERE title LIKE '%'+@title+'%'

return

End

--执行

SELECT * FROM tabcmessalot('aaa')

原文地址:https://www.cnblogs.com/for917157ever/p/2507147.html