前言
在SQL server中常用5类的函数:字符串函数,日期函数,数学函数,系统函数,聚合函数。
字符串函数
--常用的字符串函数
1.charindex() -- 字符索引
2.len() -- 长度
3.upper() -- 大写
4.Ltrim() -- 左裁减
5.Rtrim() -- 右裁减
6.Left() -- 左
7.Right() -- 右
8.stuff() -- 删除并添加
9.replace() -- 查找并替换
/* charindex() 用来查询指定字符串在另一个字符串中的起始位置
* 从左往右找的顺序,如果没有找到返回0
*/
--两个参数,不指定开始位置,默认从1开始
select charindex(\'sjdy\',\'www.sjdy.com\') --返回 5
--三个参数,第一个查询内容,第二个数据源,第三个指定开始位置
select charindex(\'sjdy\',\'www.sjdy.com\',3) --返回 5
-- len() 求字符串长度
select len(\'www.baidu.com\') --返回 13
-- left() 从左开始截取指定长度的字符串
select left(\'www.baidu.com\',3) --返回 www
--right() 从右开始截取指定长度的字符串
select right(\'www.baidu.com\',3) --返回 com
--replace() 查找并替换
select replace(\'我爱我的家乡\',\'家乡\',\'祖国\') --返回 \'我爱我的祖国\'
--stuff() 删除指定长度字符,并插入新的字符
--数据源,开始位置,删除几个字符,插入新的数据
select stuff(\'ABCDEF\',2,3,\'我和我的祖国\') --返回 \'A我和我的祖国EF\'
select stuff(\'ABCDEF\',2,3,\'\') --返回 \'AEF\'
--upper() 将字符串转换为大写
select upper(\'sql server课程\') --返回 \'SQL SERVER课程\'
--Ltrim() 清除字符左边的空格
select Ltrim(\' SQL\') --返回 \'SQL\'
--Rtrim() 清除字符右边的空格
select Rtrim(\'SQL \') --返回 \'SQL\'
日期函数
--日期部分参数及缩写
1.yy,yyyy --年 (year)
2.qq,q --季度 (quarter)
3.mm,m --月 (month)
4.dy,y --一年中的某一天 (dayofyear)
5.dd,d --日 (day)
6.wk,ww --周 (week)
7.dw,w --星期 (weekday)
8.hh --小时 (hour)
9.mi,n --分钟 (minute)
10.ss,s --秒 (second)
11.ms --毫秒 (millisecond)
--getdate() 获取当前系统日期
select getDate() --返回 当前系统时间(2020-07-10 7:36:15.986)
--dateadd() 添加指定日期后的日期
select dateAdd(mm,4,\'4/10/2020\') --返回 修改后的日期(8/10/2020)
--dateDiff() 获取时差
select dateDiff(dy,\'4/10/2020\',\'4/19/2020\') --返回 时差(9)
--datename() 获取指定日期部分的字符串形式
select datename(dw,\'01/01/2020\') --返回 字符串(星期三)
--datePart() 获取指定日期部分的整数形式
select datePart(day,\'01-01-2020\') --返回 数字(3)
数学函数
--常用数学函数
1.rand() --返回0到1之间的随机float值
2.abs() --获取绝对值
3.ceiling() --向上取整,
4.floor() --向下取整
5.power() --取数值表达式的幂
6.round() --取数值表达式四舍五入为指定精度
7.sign() --对于整数返回+1,对于负数返回-1,对于0则返回0
8.sqrt() --取浮点数表达式的平方根
--获取随机数
select rand() --返回0~1之间的浮点数(0.522138223779467)
--获取绝对值
select abs(-123) --返回 123
--向上取整
select ceiling(12.5) --返回 13
--向下取整
select floor(12.5) --返回 12
--取数值表达式的幂
select power(4,2) --返回 16
--四舍五入
select round(43.1453,2) --返回 43.15
--返回符号或0
select sign(23) --返回 23
--返回平方根
select sqrt(9) --返回 3
系统函数
--常用系统函数
1.convert() --用来转变数据类型
2.current_user --返回你登录的用户名
3.datalength() --返回指定表达式的字节数
4.host_name() --返回当前用户所登录的计算机名称
5.system_user --返回你当前所登录的用户名
6.user_name() --从给定的用户名ID返回用户名
--转变数据类型
select convert(int,\'1234\') 返回整数 123
--返回你登录的用户名
select current_user 返回 dbo
--返回表达式的字节数
select datalength(\'孙\') 返回 2
--返回当前登录的计算机名称
select host_name() 返回 DESKTOP-3NS4GCJ
--返回当前登录的用户名
select system_user 返回 DESKTOP-3NS4GCJ\12930
--返回指定用户名Id的用户名
select user_name(1) 返回 dbo
聚合函数
--常用聚合函数 顾名思义T-SQL 提供了5中聚合函数
1.sum() --和
2.avg() --平均分
3.max() --最大值
4.min() --最小值
5.count() --计数
--求和
select sum(列名) --返回 该列值的总和 该列必须是整数类型
--求平均分
select avg(列名) --返回 该列值的平均数 该列必须是整数类型
--求最大值
select max(列名) --返回 该列值中最大值 该列必须是整数类型
--求最小值
select min(列名) --返回 该列值中最小值 该列必须是整数类型
--统计
select count(*) --返回 统计个数 *代表每条记录