用户定义函数为标量值函数或表值函数。如果 RETURNS 子句指定了一种标量数据类型,则函数为标量值函数。可以使用多条 Transact-SQL 语句定义标量值函数。
如果 RETURNS 子句指定 TABLE,则函数为表值函数。根据函数主体的定义方式,表值函数可分为内联函数或多语句函数。
这里我们通过几个简单的例子,来说明下function的使用.
1。返回一个字符串。
create function GetStr
(
@str varchar(max)
)
returns varchar(max)
as
begin
if(@str='')
return '参数值为空!'
else
return @str
return @str
end
运行下这个函数:
select dbo.getstr('')
返回的结果是:参数值为空!
select dbo.getstr('abcd')
返回的结果是:abcd
2。返回一个表值函数,也就是返回一个table。
create function F_GetTb
(
@studentName varchar(100)
)
returns table
as
return (select * from StudentsScore where student=@studentName)
调用这个函数的方法:
select * from dbo.F_GetTb('学生A')
返回的结果是:
备注:返回表值函数的,可以嵌套到sql语句或者视图当中。