我们所说的自定义函数,和数据库中叫“用户自定义函数”是一样的,
自定义函数分为二种,一种是标量值函数,另一种是表格值函数
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')