【笔记】各种常用函数

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():返回提供的组或记录集中的计数
  • *:对所有的行进行计数,包括空值行
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,690评论 0 4
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 6,143评论 1 24
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 5,211评论 0 20
  • 刚刚在写作群冒了个泡。我发现现在的人都很爱学习,这个学习比当初读书的时候还要用心还要费劲还要自己掏学费。但...
    胡敏宜阅读 1,337评论 3 1
  • 最初认识刘奕君,是因为《伪装者》,那个麻辣教官王天风,他不拘一格,“调戏”毒蝎胡歌,智斗毒蛇靳东,“戏弄”美女王鸥...
    简言依依阅读 3,421评论 0 3

友情链接更多精彩内容