SQL函数大全及示例汇总

SQL函数大全及示例汇总这里写自定义目录标题概述 1 聚合函数 2 转换函数 3 日期函数 4 数字函数 5 字符串函数 6 系统函数 7 文本和图像函数概述 SQL 中包含以下七种类型的函数 聚合函数 返回汇总值 转型函数 将一种数据类型转换为另外一种 日期函数 处理日期和时间 数学函数 执行算术运算 字符串函数 对字符串 二进制数据或表达式执行操作 系统函数 从数据库返回在 SQLSERVER 中的值 对象或设置的特殊信

概述

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中日期的表示方法及有效范围,如下:

日期部分 缩写 日期部分 缩写
yy 1753-9999 wk 1-53
季度 1-4 小时 hh 0-23
mm 1-12 分钟 mi 0-59
一年中的天 dy 1-366 ss 0-59
一月中的天 dd 1-31 毫秒 ms 0-999
一周中的天 dw 1-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() 返回常量值.9793
  • 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) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。
  • 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('table_name.col_name',text_ptr)检查给定的文本指针是否有效。返回表示有效,返回表示指针无效。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221748.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:22
下一篇 2026年3月17日 下午5:23


相关推荐

  • 只有一个源视频的Deepfakes简介[通俗易懂]

    只有一个源视频的Deepfakes简介[通俗易懂]Deepfakes简介Deepfakes是人工智能生成的任何人或名人的合成视频,它冒充真实的人,并让他们采取行动或说出他们从未做过的任何事情。Deepfake的创建过程在技术上很复杂…

    2022年5月25日
    81
  • TTL门电路与CMOS门电路引脚是否能悬空及原因解释

    TTL门电路与CMOS门电路引脚是否能悬空及原因解释COMS 集成电路的输入阻抗很高 输入端悬空 会受到感应信号的干扰而误认为是有效输入信号 易出现错误的输出 故引脚不可悬空 且由于 COMS 的内部为 MOS 管 故电流非常小 所以引脚不论是接大电阻还是小电阻 都算低电平 对 TTL 门电路来说具有输入特性和负载特性 存在开门电阻 Ron 和关门电阻 Roff 若 Ri 小于关门电阻 则相当于引脚接了低电平 反之 若 Ri 大于开门电阻 则相当于引脚接了高电

    2026年3月19日
    2
  • Windows线程漫谈界面线程和工作者线程

    每个系统都有线程,而线程的最重要的作用就是并行处理,提高软件的并发率。针对界面来说,还能提高界面的响应力。线程分为界面线程和工作者线程,界面实际就是一个线程画出来的东西,这个线程维护一个“消息队列”

    2021年12月25日
    45
  • 配置缺省路由_缺省路由下一跳

    配置缺省路由_缺省路由下一跳缺省路由(默认路由),易目的网络为0.0.0.0,子网掩码为0.0.0.0的形式出现。应用缺省路由可减少路由表的规模,减少维护压力。如下图对于交换机A而言,要去往交换机B所直连的PC1\PC2,就需要有路由的指引。如果我们配置静态路由的话,就需要在交换机A上配置两条静态路由。即增加了配置工作量,又增加了交换机A的负担。因为交换机需要维护更多的路由条目,而承载路由条目的路由表需要占用设备内存资源。为优化网络设计,在保证路由可达的情况下,可以尽量减少路由表的路由条目。在下图场景下,我们可以配置一条缺省路由

    2025年7月13日
    7
  • java怎样调用oracle存储函数_oracle如何调用存储过程

    java怎样调用oracle存储函数_oracle如何调用存储过程之前给大家介绍了java代码调用存储过程,下面要给大家介绍的就是java当中调用oracle存储过程,一起来看看吧。首先来看一下项目结构:在数据库创建存储过程的脚本,假如,使用的是本地的oracle数据库,那么,就需要开启服务-OracleOraDb11g_home1TNSListener和OracleServiceORCL。实现:输入用户的工号,输出用户名字、薪水以及工作:createorr…

    2022年10月20日
    4
  • SQL嵌套查询_sql嵌套查询返回多个字段

    SQL嵌套查询_sql嵌套查询返回多个字段说到嵌套查询,首先得理解嵌套查询是什么意思,简单来说就是,一个查询语句可以嵌套在另外一个查询语句的where子句中。外层的查询称为父查询(主查询),内层的查询称为子查询(从查询)。嵌套查询的工作方式是由内向外的,即先进行内层查询,外层查询则利用内层查询的结果集作为条件进行查询。当然,嵌套查询不仅仅是select语句的专属,它还可以用在update、insert、delete语句中。如(update…

    2022年8月10日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号