SQL函数⼤全及⽰例汇总
⽂章⽬录
概述
SQL中包含以下七种类型的函数:
1. 聚合函数:返回汇总值。
2. 转型函数:将⼀种数据类型转换为另外⼀种。
3. ⽇期函数:处理⽇期和时间。
4. 数学函数:执⾏算术运算。
5. 字符串函数:对字符串、⼆进制数据或表达式执⾏操作。
6. 系统函数:从数据库返回在SQLSERVER中的值、对象或设置的特殊信息。
7. ⽂本和图像函数:对⽂本和图像数据执⾏操作。
1、聚合函数
它对其应⽤的每个⾏集返回⼀个值。
AVG(表达式) 返回表达式中所有的平均值。仅⽤于数字列并⾃动忽略NULL值。
COUNT(表达式) 返回表达式中⾮NULL值的数量。可⽤于数字和字符列。
COUNT(*) 返回表中的⾏数(包括有NULL值的列)。
MAX(表达式) 返回表达式中的最⼤值,忽略NULL值。可⽤于数字、字符和⽇期时间列。
MIN(表达式) 返回表达式中的最⼩值,忽略NULL值。可⽤于数字、字符和⽇期时间列。
SUM(表达式) 返回表达式中所有的总和,忽略NULL值。仅⽤于数字列。
2、转换函数
有CONVERT和CAST两种。
CONVERT(data_type[(length)], expression [, style])
例: Select convert(varchar(10) ,stuno) as stuno,stuname from student
CAST( expression AS data_type )
例: Select cast(stuno as varchar(10)) as stuno,stuname from student
Cast和Convert的区别
Cast 和Convert都是⽤来将⼀种数据类型的表达式转换为另⼀种数据类型的表达式。CAST 和 CONVERT 提供相似的功能,只是语法不同。在时间转化中⼀般⽤到convert,因为它⽐cast多加了⼀个style,可以转化成不同时间的格式。
3、⽇期函数
由于不能直接执⾏算术函数,所以⽇期函数就⼗分有⽤。
GETDATE() 当前的系统⽇期。
select GETDATE()--结果:2019-05-07 18:34:27.343
DATEADD(⽇期部分,number,date) 返回带有指定数字(number)的⽇期(date),该数字添加到指定的⽇
期部分(datepart)
select DATEADD(dd,5, getdate())--增加5天时间
DATEDIFF(⽇期部分,date1,date2) 返回两个⽇期中指定的⽇期部分之间的差值。
select DATEDIFF(mm,'2010-1-1','2010-3-1 00:00:00')--结果:2
DATENAME(⽇期部分,date) 返回⽇期中⽇期部分的字符串形式。
select DATENAME(dw,GETDATE())--结果:星期⼆
注:DATENAME 和 DATEPART 的区别,返回的值类型不同,⼀个是VARCHAR⼀个是INT,另外就是星期会⽤本地语⾔来表⽰DATEPART(⽇期部分,date) 返回⽇期中指定的⽇期部分的整数形式。
select DATEPART(dw,GETDATE())--结果(返回今天是⼀周中的第⼏天):3
YEAR(date) 返回指定⽇期的年份数值
select YEAR(GETDATE())--结果:2019
MONTH(date)返回指定⽇期的⽉份数值
DAY(date)返回指定⽇期的天数值
注:当显⽰⽇期列的内容时如果只显⽰年⽉⽇部分,可以使⽤CONVERT转换函数对⽇期列进⾏转换
CONVERT(VARCHAR(10),⽇期字段名,120) --120 为⽇期格式YYYY-MM-DD
SELECT CONVERT(VARCHAR(10),盘点⽇期,120) AS 盘点⽇期 FROM 原材料盘点⽇期明细表
SQL中⽇期的表⽰⽅法及有效范围,如下:
⽇期部分缩写值⽇期部分缩写值年yy1753-9999周wk1-53
季度qq1-4⼩时hh0-23
⽉mm1-12分钟mi0-59⼀年中的天dy1-366秒ss0-59⼀⽉中的天dd1-31毫秒ms0-999⼀周中的天dw1-7
4、数字函数
对数字值执⾏代数运算。
ABS(num_expr) 返回数值表达式的绝对值。
ACOS(float_expr) 返回⾓(以弧度表⽰),它的余弦值近似于指定的浮点表达式。
ASIN(float_expr) 返回⾓(以弧度表⽰),它的正弦值近似于指定的浮点表达式。
ATAN(float_expr) 返回⾓(以弧度表⽰),它的正切值近似于指定的浮点表达式。
ATN2(float_expr1, float_expr2) 返回⾓(以弧度表⽰),它的正切值在两个近似的浮点表达式之间。
CEILING(num_expr) 返回⼤于或等于数值表达式的最⼩整数。
COS(float_expr) 返回以浮点表达式表⽰的近似于指定⾓度(以弧度表⽰)的余弦三⾓函数的值。
COT(float_expr) 返回以浮点表达式表⽰的近似于指定⾓度(以弧度表⽰)的余切三⾓函数的值。
DEGREES(num_expr)返回数值表达式表⽰的弧度值对应的度值。
EXP(float_expr) 根据指定的近似浮点表达式,返回指数值。
FLOOR(num_expr) 返回⼩于或等于数值表达式的最⼤整数
LOG(float_expr) 根据指定的近似浮点表达式,返回⾃然对数值。
LOG10(float_expr) 根据指定的近似浮点表达式,返回以为底的对数。
PI() 返回常量值.141592653589793
POWER(num_expr,y) 返回幂为y的数值表达式的值。
RADIANS(num_expr) 返回数值表达式表⽰的度值对应的弧度值。
RAND([seed]) 随机返回的到之间的近似浮点值,可以对seed指定为整数表达式(可选)。
ROUND(num_expr,length) 对数值表达式截取指定的整数长度,返回四舍五⼊后的值。
SIGN(num_expr) 对正数执⾏+1操作,对负数和零执⾏-1操作。
SIN(float_expr) 返回以浮点表达式表⽰的近似于指定⾓度(以弧度表⽰)的正弦三⾓函数的值。
SQUARE(float_expr) 返回浮点表达式的平均值。
SQRT(float_expr) 返回指定的近似浮点表达式的平⽅根。
TAN(float_expr) 返回以浮点表达式表⽰的近似于指定⾓度(以弧度表⽰)的正切三⾓函数的值。
5、字符串函数
可⽤于binary 和varbinary数据类型列,但主要⽤于char和varchar数据类型。
Expr1+expr2 返回两个表达式的组合形式的字符串。
ASCII(char_expr) 返回表达式最左边字符的ASCⅡ代码值。
CHAR(int_expr) 返回到之间的整数表达式的ASCⅡ字符值。如果输⼊的值不在有效范围内,则返回NULL。
CHARINDEX('pattern',char_expr) 返回字符表达式中指定模式的起始位置。
DIFFERENCE(char_expr1,char_expr2) 根据⽐较两个字符表达式的相似度,返回到之间的值。表⽰匹配度最佳。
LEN(char_expr) 返回字符表达式的长度。
LOWER(char_expr) 将字符表达式全部转换为⼩写。
LTRIM(char_expr) 返回删除掉前⾯空格的字符表达式。
PATINDEX('%pattern%',expr) 返回表达式中模式第⼀次出现的起始位置。返回表⽰不存在模式形式。
REPLICATE(char_expr,int_expr) 返回重复指定次数的字符表达式产⽣的字符串。
REVERSE(char_expr) 反转字符表达式。
RIGHT(char_expr,int_expr) 返回从字符表达式最右端起根据指定的字符个数得到的字符。
RTRIM(char_expr) 返回删除掉其后空格的字符表达式。
SOUNDEX(char_expr) 评估两个字符串的相似度后得到的位代码。
SPACE(int_expr) 返回包含指定空格数的字符串。
STR(float_expr[,length[,decimal]]) 返回浮点表达式的字符串表⽰法。
STUFF(char_expr1,start,length,char_expr2) 使⽤字符表达式替换字符表达式的⼀部分字符,从指定的位置开始替换指定的长度。
SUBSTRING(char_expr,start,length) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。
datediff是字符型函数UPPER(char_expr) 将字符表达式全部转换为⼤写。
6、系统函数
⽤于返回元数据或配置设置。
COALESCE(expr1,expr2, xprN) 返回第⼀个⾮NULL表达式。
COL_LENGTH('table_name','column_name') 返回列的长度。
COL_NAME(table_id,column_id) 返回指定的表中的列名。
DATALENGTH('expr') 返回任何数据类型的实际长度。
DB_ID([‘database_name']) 返回数据库的标识号。
DB_NAME([database_id]) 返回数据库的名称。
GETANSINULL([‘database_name']) 返回数据库的默认空性(Nullability)。
HOST_ID() 返回⼯作站的标识号。
HOST_NAME() 返回⼯作站的名称。
IDENT_INCR('table_or_view') 有新的记录添加⼊到表中时计数加。
IDENT_SEED('table_or_view') 返回标识列的起始编号。
INDEX_COL('table_name',index_id,key_id) 返回索引的列名。
ISNULL(expr,value) 使⽤指定的值替换的NULL表达式。
NULLIF(expr1,expr2) Expr1与Expr2相等时,返回Null。
OBJECT_ID('obj_name') 返回数据库对象标识号。
OBJECT_NAME('object_id') 返回数据库对象名。
STATS_DATE(table_id,index_id) 返回上次更新指定索引的统计的⽇期。
SUSER_SID([‘login_name']) 返回⽤户的登录标识号。
SUSER_ID([‘login_name']) 返回⽤户的登录标识号。这个函数类似于SUSER_SID()函数,并且保留了向后的兼容性。
SUSER_SNAME([server_user_id]) 返回⽤户的登录标识号。
SUSER_NAME([server_user_id]) 返回⽤户的登录标识号。这个函数类似于SUSER_SNAME()函数,并且保留了向后的兼容性。
USER_ID('user_name') 返回⽤户的数据库标识号。
USER_NAME(['user_id']) 返回⽤户的数据库名称。
7、⽂本和图像函数
通常返回有关⽂本和图像数据所需的信息。⽂本和图像数据是以⼆进制格式的形式进⾏存储的。
TEXTPTR(col_name) 返回varbinary格式的⽂本指针值。对⽂本指针进⾏检查以确保它指向第⼀个⽂本页。
TEXTVALID('l_name',text_ptr)检查给定的⽂本指针是否有效。返回表⽰有效,返回表⽰指针⽆效。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。