--1.标量函数:标量函数是对单一值操作,返回单一值。能够使用表达式的地方,就可以使用标量函数。像我们经常使用的left、getdate等,都属于标量函数。系统函数中的---标量函数包括:数学函数、日期和时间函数、字符串函数、数据类型转换函数等
create
function
[dbo].[
getName3](@tjbh
varchar
(20))
returns
varchar
(20)
as
begin
declare
@
name
varchar
(20)
select
@
name
=patient
from
t2_tj_djb
where
TJBH=@tjbh
return
@
name
end
select
dbo.GetName3(
'201412030005'
)
--2内嵌表值函数:内嵌表值函数的功能相当于一个参数化的视图。它返回的是一个表,内联表值型函数没有由BEGIN-END 语句括起来的函数体。其返回的表由一个位于-------RETURN 子句中的SELECT 命令段从数据库中筛选出来。
alter
FUNCTION
[dbo].[
getA](@tjbh
varchar
(20))
returns
table
as
return
(
select
*
from
t2_tj_djb
where
TJBH=@tjbh)
select
*
from
dbo.
getA(
'201412020001'
)
--3.多声明表值函数:可以看作标量型和内嵌表值型函数的结合体。它的返回值是一个表,但它和标量型函数一样有一个用BEGIN-END 语句括起来的函数体,返回值的表中----的数据是由函数体中的语句插入的。由此可见,它可以进行多次查询,对数据进行多次筛选与合并,弥补了内联表值型函数的不足。
create
FUNCTION
[dbo].[
getB](@tjbh
varchar
(20))
returns
@re
TABLE
(age
int
,tjbh
varchar
(20))
as
begin
DECLARE
@a
int
select
@a=age
from
t2_tj_djb
where
TJBH=@tjbh
insert
@re
Values
(@a,@tjbh)
RETURN
end
select
age,tjbh
from
dbo.getB(
'201412020001'
)