【笔记】各种常用函数

SQL中常常使用到各种函数来方便取值或实现某些特定功能,这里整理了五种常用的函数方便日后查阅:字符串函数、日期函数、数学函数与系统函数、聚合函数

一、字符串函数

  • CHARINDEX:查找一个指定的字符串在另一个字符串中的起始位置
    第一个参数为匹配字段,第二个参数为被查询的字符串,第三个参数可选,代表从第i个字符开始查询,默认为1
    例:SELECT CHARINDEX('123','hao123.com',1)
    返回值为4
  • LEN:返回传递给它的字符串长度
    例:SELECT LEN('SQL Server')
    返回值为10
  • UPPER:把传递给它的字符串转换为大写
    例:SELECT UPPER('sql server')
    返回值为SQL SERVER
  • LTRIM:清除字符左边的空格
    例:SELECT LTRIM(' ZhangSan ')
    返回值为'ZhangSan '
  • RTRIM:清除字符右边的空格
    例:SELECT LTRIM(' ZhangSan ')
    返回值为' ZhangSan'
  • RIGHT:从字符串右边返回指定数目的字符
    例:SELECT RIGHT('abc.123',3)
    返回值为'123'
  • REPLACE:替换一个字符串中的字符
    第一个参数为被查询的字符串,第二个参数为匹配字段,第三个字符为替换字段,当第三个参数为''时,表示删除匹配字段
    例:SELECT REPLACE('abc.amn','a','t')
    返回值为'tbc.tmn'
  • STUFF:在一个字符串中,删除指定长度的字符,并在该位插入一个新的字符串
    第一个参数为被修改的字符串,第二个参数为删除位置(从1起算),第三个参数为删除的字符个数,第四个参数为替换的字符串,当第四个参数为''时,表示删除指定位置的字符串
    例:SELECT STUFF('ABCDEF',2,3,'hao123')
    返回值为:Ahao123EF

实例使用:

(1) 截取邮箱名
SELECT LEFT(Email,CHARINDEX('@',Email)-1)
FROM UserInfo WHERE UserName='张三'
(2) 替换字符
SELECT REPLACE('我最喜欢的颜色是白色','白色','蓝色')
(3) 删除字符
SELECT REPLACE('我最喜欢的颜色是白色','白色','')
(4) 修改字符串
SELECT STUFF('ABCDEF',2,3,'hao123')
返回值为:Ahao123EF

二、日期函数

  • GETDATE:取得当前的系统日期
    例:SELECT GETDATE()
    返回值为:今天的日期 2017-04-01 09:21:14.167
  • DATEADD:将指定的数值添加到指定的日期部分后的日期
    第一个参数表示增量(d表示day),第二个参数为增加次数(可为负数),第三个参数为有效日期
    例:SELECT DATEADD(d,5,GETDATE())
    返回值为:以当前的日期格式返回2017-04-06 09:26:27.350
  • DATEDIFF:两个日期之间的指定日期部分的间隔
    第一个参数为增量,第二个参数为起始日期,第三个参数为截止日期
    例:SELECT SELECT DATEDIFF(YY,'2008/08/08',GETDATE())
    返回值为9
  • DATENAME:日期中指定日期部分的字符串形式
    例:SELECT DATENAME(dw,'12/13/2014')
    返回值为:'Saturday或星期六'
  • DATEPART:日期中指定日期部分的整数形式
    例:SELECT DATEPART(day,'01/15/2015')
    返回值为15

[注1] 在对两个DATENAME()相'+'时,是对两个返回的字符串进行拼接;在对两个DATEPART()相'+'时,是对两个返回的数值进行相加。

三、数学函数与系统函数

  • RAND:返回从0到1之间的随机float值
  • ABS:取数值表达式的绝对值
  • CEILING:向上取值
  • FLOOR:向下取值
  • ROUND:取数值表达式四舍五入为指定精度
  • SIGN:对于正数返回+1,对于负数返回-1,对于0返回0
  • POWER:取数值表达式的幂值
  • SQRT:取浮点表达式的平方根
  • CONVERT(int,'12'):string转int
  • CONVERT(varchar(2),12):int转string
  • CONVERT(varchar(10),GETDATE(),102):将日期型转为字符型

四、聚合函数

特点:

① 返回结果为单行单列
② 要查询的列中如果存在一个使用了聚合函数的列,那么就不允许存在非聚合函数项,如果有那么必须使用分组GROUP BY语句

  • SUM():返回表达式中所有数值的总和
    空值将被忽略,只能用于数字类型的列
  • AVG():返回表达式中所有数值的平均值
    空值将被忽略,只能用于数字类型的列
  • MAX():返回表达式中的最大值
    空值将被忽略,可以用于数字类型及日期时间烈性的列
  • MIN():返回表达式中的最小值
    空值将被忽略,可以用于数字类型及日期时间烈性的列
  • COUNT():返回提供的组或记录集中的计数
  • *:对所有的行进行计数,包括空值行

你可能感兴趣的:(【笔记】各种常用函数)