Sql Server聚合函数和自定义函数
定义: 数据库函数是指当需要分析数据清单中的数值是否符合特定条件时,使用数据库工作表函数。
一:聚合函数
常用的聚合函数:
Max(),Avg(),Count(),Min(),Sum()。
中文:
最大值,平均值,数据条数,最小值,总和。
以下用到的表:
求最大值:Max()
--求最大值 max()
--查询年龄最大的
select max(Age)from Customers
最小值 min()
--最小值 min()
--查询年龄最小的
select min(Age)from Customers
平均值 avg()
--平均值 avg()
--求平均年龄
select avg(Age)from Customers
记录值 count()
--记录值 count()
--统计Customers表中的数量
select count(*)from Customers
----统计Customers表中国家分别的数量
select Country,count(*)from Customers
group by Country
求和 sum()
-- 求和 sum()
--求总年龄
select sum(Age)from Customers
二:自定义函数
定义
1.用户自定义函数的类型:
a、标量值函数(返回一个标量值)
语法:
Create function 函数名(参数)
Returns 返回值数据类型
as
begin
SQL语句(必须有return 变量或值)
b、表格值函数(内联表格值函数、多语句表值函数,返回一个结果集即返回多个值)
语法:
create function 函数名(参数)
returns table
as
return(一条SQL语句)
2.优缺点
优点:
可以把复杂的逻辑嵌入到查询中。
可以为复杂的表达式创建新函数。
可以运用在一个表达式或 SELECT 语句的 FROM 子句中,并且还可以绑定到架构。
缺点:
该函数一旦误用会产生潜在的性能问题。必须针对WHERE子句的每一行执行的任何函数,不管是用户
定义的函数还是系统函数,都将减慢执行速度。
案例
--自定义函数
--性别是1就是男 性别是0就是女
--创建函数 关键字(function)
go
create function convert_sex
--参数
(
@sex bit
)
returns varchar(4)--返回数据类型
as
begin
declare @rsex varchar(4)
if(@sex=1)
select @rsex ='男'
else
select @rsex ='女'
return @rsex
end
select *,dbo.convert_sex(Sex) from Customers
结果: