概括:函数是由一个或多个T-SQL语句组成的子程序,是一组可用于封闭实现一定功能的程序代码,函数使代码便于重复使用。
类别:
1、聚合函数
聚合函数对一个组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空置。聚合函数经常与 SELECT 语句的 GROUP BY字句一起使用。常用的聚合函数包括 AVC、COUNT、MAX、MIN、SUM。
函数 | 作用 |
avg | 返回表达式中的总数返回表达式的平均值 |
count | 返回表达式中的总数 |
min | 返回表达式中的最小值 |
max | 返回表达式中的最大值 |
sum | 返回表达式中的和 |
具体事例:
表名为Customers,列名有ID,Name,Country,Sex,Num
实现代码:
select COUNT(*) 总计 from Customers
select Country,COUNT(*) from Customers group by Country
select min(num) 最小值 from Customers
select max(num) 最大值 from Customers
2、日期和时间函数
使用日期和时间函数可以方便地对日期进行显示、比较、截取等操作,常用的日期和时间函数包括 GETDATE、DATENAME、DATEPART、DAY、MONTH、YEAR、DATEDIEF、DATEADD。
函数 | 作用 |
GETDATE | 返回当前计算机的日期和时间 |
DATENAME | 返回表示指定日期的指定datepart 的字符串 |
DATEPART | 返回表示指定的date和指定的datepart 的整数 |
DAY | 返回表示指定的date中的“日”部分的整数 |
MONTH | 返回表示指定的date中的“月”部分的整数 |
YEAR | 返回表示指定的date中的“年”部分的整数 |
DATEDIEF | 返回两个指定日期之间所夸的日期或者时间datepart边界的数目 |
DATEADD | 通过加一个时间间隔指定date的指定datepart相加,返回一个新的datepart值 |
3、自定义函数
自定义函数就是为了提高代码的复用性,下图中的代码就是一个标准的无传入参数无返回值的自定义函数
--定义一个函数,如果参数1返回男,参数0返回女
go
create function ConverSex(
@sex bit
)
returns varchar(4)
as
begin
declare @rsSex varchar(4)
if(@sex=1)
select @rsSex='男'
else
select @rsSex='女'
return @rsSex
end
--函数调用
select *,dbo.ConverSex(sex) from Customers