- 什么是函数
- 函数的分类
- 函数的使用
- 使用自定义函数的优缺点
什么是函数
函数是由一个或多个T-SQL语句组成的子程序,是一组可用于封闭实现一定功能的程序代码,函数使代码便于重复使用
函数的分类
常用系统函数
聚合函数
函数名 | 说明 |
---|---|
avg | 返回表达式平均值 |
sum | 返回表达式的值 |
max | 返回表达式的最大值 |
min | 返回表达式的最小值 |
count | 返回表达式的项数 |
日期和时间函数
函数名 | 说明 |
---|---|
GETDATE | 返回当前计算机的日期和时间 |
DATENAME | 返回表示指定日期的指定datepart字符串 |
DATEPART | 返回表示指定日期的指定datepart整数 |
DAY | 返回表示指定date 的“日”部分的整数 |
MONTH | 返回表示指定date 的“月”部分的整数 |
YEAR | 返回表示指定date 的“年”部分的整数 |
DATEDIEF | 返回两个指定日期之间所夸的日期或时间dateoart边界的数目 |
DATEADD | 通过加你一个时间间隔指定date 的指定datepart相加 返回一个新的datetime值 |
字符串函数
函数名 | 说明 |
---|---|
SubString | 截取指定的字符串 |
Replace | 替换字符串 |
Left | 取左边指定个数的字符 |
Right | 取右边指定个数的字符 |
ASCII | 获取ASCII码 |
Char | 转换成字符 |
函数的使用
自定义函数的使用
查找员工表的字段 性别为 true 添加一列显示男 false添加一列显示为女
--函数
--自定义函数的创建
create function ConvertToSex(
@sex bit
)
returns varchar(4)
as
begin
declare @rSex varchar(4)
if(@sex=1)
select @rSex='男'
else
select @rSex='女'
return @rSex
end
--函数的调用
select *,dbo.ConvertToSex(Sex) from [dbo].[Customer]
##使用自定义函数的优缺点
优点:
可以在SQL语句中调用,直接使用返回值,从而可以形成复杂的SQL应用。
缺点:
能在函数中使用的语句有严格限制:
不支持create、ALTER、drop等DDL(Data Definition Language)命令;
insert、delete、update只能用在临时表上;
不支持动态SQL;
不支持“不确定”的函数,比如常用的getdate。不确定函数是指输入参数相同,返回结果可能不同的函数。