暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

开启新篇章:SQL Server函数大全

SQL数据库运维 2021-07-23
1178

点击蓝色字关注“SQL数据库运维”不迷路


函数的类型

1、聚合函数对一组值执行计算,并返回单个值,也被称为组函数。聚合函数经常与 SELECT 语句的 GROUP BY 子句的HAVING一同使用。

  • AVG(column) - 返回指定组中的平均值,仅用于数字列并自动忽略NULL值。

  • COUNT(column) - 列值的计数(不包括NULL值)

  • COUNT(*) - 返回表中的行数(包括有NULL值的列和重复项)。

  • COUNT(DISTINCT column) - 对组中的每一行都计算column并返回唯一非空值的数量。

  • MAX(column) - 列中最大值(文本数据类型中按字母顺序排在最后的值)。忽略空值。

  • MIN(column) - 列中最小值(文本数据类型中按字母顺序排在最前的值)。忽略空值。

  • SUM(column) - 返回总和,必须是数值型参数,空值被忽略。


2、转换函数:将一种数据类型转换为另外一种。有CONVERT和CAST两种。

  • CONVERT(data_type[(length)], expression [, style])

  • CAST( expression AS data_type )

Cast和Convert的区别:

Cast 和Convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式。CAST 和 CONVERT 提供相似的功能,只是语法不同。在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式。


3、日期函数处理日期和时间。

  • GETDATE() 当前的系统日期。

  • DATEADD(日期部分,number,date) 返回带有指定数字(number)的日期。(date),该数字添加到指定的日期部分(datepart)。

  • DATEDIFF(日期部分,date1,date2) 返回两个日期中指定的日期部分之间的差值。

  • DATENAME(日期部分,date) 返回日期中日期部分的字符串形式。

  • DATEPART(日期部分,date) 返回日期中指定的日期部分的整数形式。

  • YEAR(date) 返回指定日期的年份数值。

  • MONTH(date)返回指定日期的月份数值。

  • DAY(date)返回指定日期的天数值。

注:当显示日期列的内容时如果只显示年月日部分,可以使用CONVERT转换函数对日期列进行转换

CONVERT(VARCHAR(10),日期字段名,120) --120 为日期格式YYYY-MM-DD

DATENAME 和 DATEPART 的区别,返回的值类型不同,一个是VARCHAR一个是INT,另外就是星期会用本地语言来表示。

4、字符串函数:对字符串、二进制数据或表达式执行操作。

  • 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) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。

  • UPPER(char_expr) 将字符表达式全部转换为大写。

5、系统函数:从数据库返回在SQL SERVER中的值、对象或设置的特殊信息。

  • 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') 指定表或视图以检查有效的标识增量值的表达式。table_or_view 可以是带有引号的字符串常量,也可以是变量、函数或列名。table_or_view 的数据类型为 char、nchar、varchar 或 nvarchar。

  • 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']) 返回用户的数据库名称。

提示:在下面的章节,我会详细举例讲解SQL函数相关知识。同时,感谢大家的支持,SQL数据库基础教程已经更新至SQL函数篇。希望文章可以帮助到你,文章中如有错误,欢迎指正,交流,共同进步。

文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论