SQL常用函数大全

(1)isnull(expression,value)

declare @num int
select isnull(@num,11) 返回:11
如果expression不为null返回expression表达式的值,否则返回value的值。

NULLIF函数

NULLIF(Expression1,Expression2)
如果两个参数相等,则返回NULL;否则就返回第一个参数。
等价于:Case WHEN Expression1=Expression2 Then NULL ELSE Expression1。
例如Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1。

NULL

NULL是个神奇的东西,表示空值,未知值,任何数与它加减乘除都返回NULL。

COALESCE函数

COALESCE(Expression1,Expression2,Expression3,......)
接受一系列的表达式或列,返回第一个非空的值。
例如SELECT COALESCE(NULL,NULL,4,NULL,NULL,5),那么返回,如果里面的参数都为NULL,那么会报错。

(2)聚合函数

avg()    平均值 统计时注意null不会被统计,需要加上isnull(列名,0)
sum()    求和
count()   求行数 
min()    求最小值
max()    求最大值

(3)字符串操作函数

len() --计算字符串长度
lower() --转小写
upper () --大写
ltrim() --字符串左侧的空格去掉 
rtrim () --字符串右侧的空格去掉 
ltrim(rtrim('         bb        '))
left (str,length)  --返回str 左起 length个字符。
right (str,length)  --返回str 右起 length个字符。
substring(string,start,length)    --start起始位置(从1开始)
--substring('abcdef111',2,3) 返回‘bcd’
  (string,oldstr,newstr)
--replace('abcdef','abc','123') 返回:123def
reverse(str)  --将指定的字符串的字符排列顺序颠倒。
space(length)  --返回一个有指定长度的空白字符串。
stuff (str1,start, length,str2)  --用另一子串替换字符串指定位置、长度的子串。start开始为1
stuff('abcdef',2,3,'123')  返回:a123ef
如果起始位置为负或长度值为负,或者起始位置大于str1的长度,则返回null值。
如果length 长度大于str1中 start以右的长度,则str1只保留首字符。
replicate(str,length) 
返回一个重复str字符串length次的字符串。
replicate('abc',3)    返回:abcabcabc

(4)字符串比较函数

charindex(substr,str)  --返回字符串中某个指定的子串出现的开始位置。查找substr在str中第一次出现的位置,位置从1开始。0表示没找到
charindex('c','abcdefg')    返回:3
patindex('%substr%',str)  --返回字符串中某个指定的子串出现的开始位置。
patindex('a%','abcdefg')    返回:1
可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。

(5)数据类型转换函数

cast (str1 AS <data_ type>[ length ])  --将str1转换为data_ type类型
convert (<data_ type>[ length ], str1 [, style])  --将str1转换为data_ type类型length长度。
convert (nvarchar(10),getdate(),120) --返回:2017-10-21,120标识数据样式,或者说叫格式。

(6)日期函数

1、day(date_expression) 
返回date_expression中的日期值
2、month(date_expression)
返回date_expression中的月份值
3、year(date_expression)
返回date_expression中的年份值
4、dateadd()
dateadd (<datepart>, <number>, <date>)
返回指定日期date 加上指定的额外日期间隔number 产生的新日期。
5、datediff()
datediff (<datepart>, <date1>, <date2>)
返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。
dateadd(day,DATEDIFF(day,0,GETDATE()),0)返回下周第一天,改成year就是本年第一天,month是本月第一天,day是今天零点
6、datename()
datename(<datepart>, <date>)
以字符串的形式返回日期的指定部分此部分。由datepart 来指定。
7、datepart()
datepart (<datepart>, <date>)
以整数值的形式返回日期的指定部分。此部分由datepart 来指定。
datepart (dd, date) 等同于DAY (date)
datepart (mm, date) 等同于MONTH (date) 
datepart (yy, date) 等同于YEAR (date)
8、getdate()
以datetime 的缺省格式返回系统当前的日期和时间。

(7)数学函数

abs(numeric_expr)                   求绝对值
ceiling(numeric_expr)                取大于等于指定值的最小整数
exp(float_expr)                      取指数
floor(numeric_expr)                   小于等于指定值得最大整数
pi()                                  3.1415926.........
power(numeric_expr,power)            返回power次方       
rand([int_expr])                     随机数产生器
round(numeric_expr,int_expr)         安int_expr规定的精度四舍五入
sign(int_expr)                      根据正数,0,负数,,返回+1,0,-1
sqrt(float_expr)                     平方根

(8)数据类型判断

isnumeric()     确定表达式是否为一个有效的数字类型。 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、字符转换函数 1、ASCII() 返回字符表达式最左端字符的ASCII码值。在ASCII()函数中,纯数字的字...
    辉格食品阅读 5,599评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,477评论 19 139
  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 11,086评论 0 33
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 5,190评论 0 20
  • 樊登读书会由前央视节目主持人、MBA资深讲师樊登博士于2013年末发起,旨在运用微信、微博等社交新媒体的力量,同时...
    薛御风阅读 12,249评论 2 5