sql server自定义函数学习笔记
sql server中函数分别有:表值函数、标量函数、聚合函数、系统函数。这些函数中除系统函数外其他函数都需要用户进行自定义。
一、表值函数
简单表值函数
创建
create function fu_selectUser
(
)
returns table --表值函数返回类型为table
as
return(
select * from user
)
调用
select * from fu_selectUser() --由于该函数是表值函数,所以可以当成表进行应用
--结果由select语句来决定反回结果
结构
create function fu_name
(参数)
return table
as
return
(--函数体)
end
create function fu_name
(参数)
return table
as
return
(--函数体)
end
复杂表值函数-多语句表值函数
多语句表值函数需要指定具体的table类型的结构。可以自己定义哪些字段返回,所以可以支持多条语句执行来创建Table数据
创建: 多语句表值函数
create function fu_cu1(
)returns @user table--指定表名 该表为虚拟表不存在
(--指定字段
id int,
name varchar(20),
age int
)
as
begin
insert into @user values (20120101,'小明',12)
insert into @user values (20120105,'小红',12)
insert into @user values (select id,name,age from user2)
return
end
结构
create function fu_name
(--参数)
returns @tablename table --指定表名
(--指定字段)
as begin
--函数体
return
end
二、标值函数
创建
create function fu_Sum
(
@value1 int ,@value2 int
)returns int
as
begin
declare @sum int --声明变量
select @sum = @value1 + @value2
return @sum
end
调用
select dbo.fu_Sum(45,55)
![](https://images2018.cnblogs.com/blog/829317/201809/829317-20180909142610898-1175264242.png)
结构
create function fu_name
()
returns Object--反回值类型
as
begin
--函数体
end
三、聚合函数
在我的映像中聚合不外count() sun()等操作,通过种条件达到数据整合,比如查询某班级中成绩大于90分的人数以及小于80分的人数,等等。
然而在sql server中聚合函数还有许多高深的用法,感觉比较难,等以后会弄了,在来分享,-.-。
四、函数的修改
1.在数据库中找到相应的函数,然后右击,选择修改。
2.直接alert function fu_anme...对函数进行重新编写覆盖。
我也是刚接触sql server不久,如果有什么不当之处恳请批评指出,谢谢!