SQL常用函数总结(三)

三、单行函数

1.从函数定义角度,分成内置函数、自定义函数

2.从实现功能分为:数值函数、字符串函数、日期和时间函数、流程控制函数等等

3.分为单行函数、聚合函数(分组函数)

单行函数特点:操作数据对象。接受参数返回的一个结果,只对一行进行变换,每行返回一个结果可以嵌套,参数可以是一列或一个值。

1.数值函数 

ABS(x) 返回绝对值;   

SIGN(x) 返回x的符号

PI()圆周率的值;       

CEIL(x),CEILING(x)返回大于或等于某个值的最小整数

FLOOR(x)小于或等于某个值的最大整数;

LEAST(x1,x2,x3…)返回列表中的最小值;GREATEST(x1,x2,x3…)返回列表中的最大值

MOD(x,y) 返回x除以y后的余数

RAND() 返回0~1的随机值

RAND(x) 返回0~1随机值,x的值作为种子值,相同的x值产生相同的随机数

ROUND(x,c)四舍五入,截断操作 c为保留小数位数,为0时可省略不写

TRUNCATE(x,c)将数字x截断为c位小数,没有四舍五入直接截断

SQRT(x)返回x的平方根;x为负值时,返回null

2.三角函数

SIN(x)返回x的正弦值,x为弧度值

ASIN(x)返回x的反正弦值:正弦为x的值,若x不属于-1到1,返回null

COS(x)返回x的余弦值,x为弧度值

ACOS(x)返回x的反余弦值:余弦为x的值,若x不属于-1到1,返回null

TAN(x)返回x的正切值,x为弧度值

ATAN(x)返回x的反正切值:正切为x的值

ATAN2(m,n)返回两个参数的反正切值

COT(x) x的余切值,x为弧度值

角度于与弧度互换函数

RADIANS(x) 角度——>弧度,x为角度

DEGREES(x)弧度——>角度,x为弧度

3.指数和对数函数

POW(x,c),POWER(x,c)表示x的c次幂

EXP(c) 表示e的c次幂

LN(a)表示ln a

LOGa(N)表示logaN

4.进制间的转换

BIN()转二进制

HEX()转十六进制

OCT()转八进制

CONV(x,y,z)将x从y进制转到z进制

4.字符串函数

ASCII(s)返回字符串s的第一个字符的ASCII码值

CHAR_LENGTH(s)返回字符串s的字符数

LENGTH(s)返回字符串s的字节数,与字符集有关,一个汉字占3个字节,为一个字符

CONCAT(s1,s2,…,sn)连接s1,s2,…,sn为一个字符串

CONCAT_WS(x,s1,s2,…,sn)同上,但每个字符串之间要加上x

INSERT(str,idx,len,replacestr)将str从第idx位置开始,len个字符长的子串替换为replacestr

REPLACE(str,a,b)用b替换str中所有出现的a

UPPER(s)或者UCASE(s) 将s所有字母转成大写字母

LOWER(s)或者LCASE(s)将s所有字母转成小写字母

LEFT(str,n)返回str最左边的n个字符

RIGHT(str,n)返回str最右边的n个字符

LPAD(str,len,pad)用pad对str最左边进行填充,直到str的长度为len个字符

RPAD(str,len,pad)用pad对str最右边进行填充,直到str的长度为len个字符

REPEAT(x,c)重复x,4次写成一串

STRCMP(s1,s2)比较s1和s2的ASCII码哪个大

SUBSTR(x,a,b)返回x字符串的第a个起b个字符

LOCATE(a,x)返回a首次在x中出现的位置

ELT(m,s1,s2,…,sn)返回指定位置字符串,例如m=1则返回s1

FIELD(s,s1,s2,…,sn)返回s在列表中第一次出现的位置

FIND_IN_SET(s1,s2)返回s1在s2首先出现的位置

REVERSE(s)返回s反转后的字符串

NULLIF(value1,value2)比较两个字符串,若相等,返回null,否则返回value1

4.日期和时间函数

4.1获取日期和时间

CURDATE()、CURRENT_DATE()返回当前日期

CURTIME()返回当前时间

NOW()返回当前日期+时间

UTC_DATE()、UTC_TIME() utc世界标准,相差8小时,是我们的时间-8hour

4.2日期与时间戳的转换

UNIX_TIMESTAMP()日期转为时间戳

FROM_UNIXTIME()时间戳转为日期

4.3获取月份、星期、星期数、天数等函数

YEAR(date) 返回date对应的年

MONTH(date)返回date对应的月

DAY(date)返回date对应的日

HOUR(time)返回time对应的小时

MINUTE(time)返回time对应的分钟

SECOND(time)返回time对应的秒数

MONTHNAME(date)返回对应的月份:January,…

DAYNAME(date)返回星期几:MONDAY,…

WEEKDAY(date)返回周几,0是周一,…6是周日

QUARTER(date)返回日期对应的季度1~4

WEEK(date)返回日期是一年中的第几周

WEEKOFYEAR(date)返回日期是一年中的第几周

DAYOFYEAR(date)返回日期是一年中的第几天

DAYOFMONTH(date)返回日期是所在月份中的第几天

DAYOFWEEK(date)返回周几,周日是1,周一是2

4.4日期的操作函数

EXTRACT(type FROM  date) 返回指定日期中的特定部分,type为返回的值

type可以是SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR、MINUTE_SECOND

4.5时间和秒钟转换的函数

TIME_TO_SEC()时间转换为秒数

SEC_TO_TIME()秒数转换为时间

4.6计算日期和时间的函数

DATE_ADD(datetime,INTERVAL,expr type)加上一段时间的日期

此函数情况下,expr为正数时候则为加,为负数时则为减,type为year,minute,second之类的

DATE_SUB(datetime,INTERVAL,expr type)减去一段时间的日期

ADDTIME(time1,time2)在time1上加上time2的时间,time为一个数字时表示秒,可为负值,相当于减去

SUBTIME(time1,time2)在time1上减去time2的时间,time为一个数字时表示秒,可为负值,相当于加上

DATEDIFF(date1,date2)返回date1,date2日期间隔天数

TIMEDIFF(time1,time2)返回time1,time2时间间隔

FROM_DAYS(N)返回从0000年1月1日起,N天以后的日期

TO_DAYS(date)返回日期date距离0000年1月1日的天数

LAST_DAY(date)返回date所在月份的最后一天的日期

MAKEDATE(year,n)针对给定年份和所在年份中的天数返回一个日期

MAKETIME(hour,minute,second)将给定的小时、分钟、秒组合成时间返回

PERIOD_ADD(time,n)返回time加上n后的时间

4.7日期的格式化与解析

格式化:日期——>字符串

解析:字符串——>日期

!此时说的是日期的显示格式化和解析,之前说的都是隐式格式化或解析

DATE_FORMAT(日期,'%Y-%M-%D')后者还可以是其他格式

STR_TO_DATE(字符串,'%Y-%M-%D %h-%m-%s %W %w')后者格式可自行选定

GET_FORMAT(date,'USA')获得date的USA日期格式,USA可换成想要知道的其他国家格式

5.流程控制函数

IF(VALUE,VALUE1,VALUE2)如果满足条件VALUE,则值为VALUE1,否则为VALUE2

IFNULL(VALUE1,VALUE1)如果VALUE1为null,则用VALUE2替代

CASE WHEN…条件1 THEN…value1

           WHEN…条件2 THEN…value2

            ELSE…value3  END

若满足条件1则为值value1,满足条件2,则为value2,其他情况则为value3

CASE…value  WHEN…THEN…

                        WHEN…THEN…

                         ELSE…END

若value等于值1则…,等于值2则…,其他情况则…结束

FORMAT(value,n)保留value的n位小数,若n小于等于0,则只保留整数部分,有四舍五入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优思学院|作为质量工程师,需要考哪些证书?别浪费你的气力,一张就够!

质量工程师做什么呢?他们的主要任务就是确保产品和服务的质量,以满足客户需求并超越竞争对手。尽管市场上有各种各样的质量管理认证,但优思学院认为,专注于六西格玛的学习和认证就足够了。 为什么选择六西格玛? 第一…

C++青少年简明教程:While和Do-while循环语句

C青少年简明教程:While和Do-while循环语句 C的while和do-while语句都是循环控制语句,用于重复执行一段代码。while语句在循环开始前检查循环条件,而do-while语句在循环结束后检查循环条件。 使用while循环时,如果需要在每次迭代前…

本周LLM新鲜事

LLM Weekly 2024-5-W5 🎉 新品速递 Baichuan 4:百川智能发布的新一代基座大模型,结合首款AI助手「百小应」,具备多轮搜索和定向搜索能力,可以解决各种问题,并将搜索结果嵌入回答中。Baichuan 4在SuperCLUE…

12V升20V3.5A升压恒压WT3207

12V升20V3.5A升压恒压WT3207 WT3207是一款高效PWM升压控制器,采用SO-8封装设计,专为低输入电压应用优化。该控制器支持5V至36V的宽输入电压范围,使其能够有效提升12V、15V和19V系统的电压水平,特别适合于两节或三节锂离子电池供电…

LabVIEW超声波局部放电检测系统开发

LabVIEW超声波局部放电检测系统开发 在高压电力系统中,局部放电(PD)是导致绝缘失效的主要原因之一。局部放电的检测对于确保电力系统的可靠运行至关重要。开发了一种基于LabVIEW软件的超声波局部放电检测系统的设计与实现。该系统利用数字信号处理技术,…

Python | Leetcode Python题解之第119题杨辉三角II

题目&#xff1a; 题解&#xff1a; class Solution:def getRow(self, rowIndex: int) -> List[int]:row [1, 1]if rowIndex < 1:return row[:rowIndex 1]elif rowIndex > 2:for i in range(rowIndex - 1):row [row[j] row[j 1] for j in range(i 1)]row.inser…

【Python入门学习笔记】Python3超详细的入门学习笔记,非常详细(适合小白入门学习)

Python3基础 想要获取pdf或markdown格式的笔记文件点击以下链接获取 Python入门学习笔记点击我获取 1&#xff0c;Python3 基础语法 1-1 编码 默认情况下&#xff0c;Python 3 源码文件以 UTF-8 编码&#xff0c;所有字符串都是 unicode 字符串。 当然你也可以为源码文件指…

【数据结构】二叉树运用及相关例题

文章目录 前言查第K层的节点个数判断该二叉树是否为完全二叉树例题一 - Leetcode - 226反转二叉树例题一 - Leetcode - 110平衡二叉树 前言 在笔者的前几篇篇博客中介绍了二叉树的基本概念及基本实现方法&#xff0c;有兴趣的朋友自己移步看看。 这篇文章主要介绍一下二叉树的…

iframe内嵌网页自适应缩放 以展示源网页的比例尺寸

需求:这是我最近开发的低代码平台遇到的需求 ,要求将配置好的应用在弹框中预览(将预览网页内嵌入弹框中) 但是内嵌进入后 他会截取一部分(我源网站网页尺寸 是1980x1080 或者 3060X2160等等) 但是我这个dialog弹框只有我自定义的1000多px的宽高 他只会展示我iframe网页的一部分…

Linux - 磁盘管理1

1.磁盘的分区 1.1 磁盘的类型&#xff08;标签&#xff09; MBR&#xff1a; ① 最大支持2T以内的硬盘 ② 有主分区p 拓展分区e 逻辑分区l之分 > 主分区编号1-4&#xff0c;主分区可以格式化使用 拓展分区编号1-4&#xff0c;拓展分区不能格式化 拓展分区最多能有1个&…

C++11中的新特性(2)

C11 1 可变参数模板2 emplace_back函数3 lambda表达式3.1 捕捉列表的作用3.2 lambda表达式底层原理 4 包装器5 bind函数的使用 1 可变参数模板 在C11之前&#xff0c;模板利用class关键字定义了几个参数&#xff0c;那么我们在编译推演中&#xff0c;我们就必须传入对应的参数…

Leetcode:Z 字形变换

题目链接&#xff1a;6. Z 字形变换 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;二维矩阵的直接读写&#xff09; 解决办法&#xff1a;直接依据题目要求新建并填写一个二维数组&#xff0c;最后再将该二维数组中的有效字符按从左到右、从上到下的顺序读取并…

umijs+react+ts项目代码一片红处处报错解决

报错问题现象 1、在没有 "node" 模块解析策略的情况下&#xff0c;无法指定选项 "-resolveJsonModule"。 2、类型“JSX.IntrinsicElements”上不存在属性“div”。 解决办法 试了很多都没用&#xff0c;最后是参考这位朋友的解决了 vitevue3搭建工程标…

一个HL7的模拟工具

这个模拟器是为了过&#xff08; NIST美国国家标准与技术研究院&#xff08;National Institute of Standards and Technology&#xff0c;NIST&#xff09;的电子病历住院部分的认证而写的。 用途说明 inpatient中的lab order信息通过该工具向实验室转发该信息。并将实验室…

cesium学习6-相机camera

视角设置 viewer.camera.setView({destination:Cesium.Cartesian3.fromDegrees(118.0658439,24.5915414,2500),//目的地orientation:{heading:Cesium.Math.toDegrees(0),//左右平移0pitch:Cesium.Math.toDegrees(90),//上下点头90roll:Cesium.Math.toDegrees(0),//歪头0}}) 相机…

解析Java中1000个常用类:Deprecated类,你学会了吗?

在 Java 编程中,随着技术的发展和代码库的演进,旧的方法、类或接口可能会逐渐被新的替代方案取代。为了管理这些过时的代码,Java 提供了 @Deprecated 注解。 本文将深入探讨 @Deprecated 注解的功能、用法、实际应用中的注意事项,以及如何有效地管理和替换过时的代码。 @…

linux-gpio

在Linux shell中测试GPIO通信&#xff0c;通常需要使用GPIO的设备文件&#xff0c;这些文件通常位于/sys/class/gpio目录下。要使用特定的GPIO引脚&#xff0c;比如GPIO92&#xff0c;你需要执行以下步骤&#xff1a; 导出GPIO引脚&#xff1a;首先&#xff0c;需要确保GPIO92已…

Window系统安装Docker

因为docker只适合在liunx系统上运行&#xff0c;如果在window上安装的话&#xff0c;就需要开启window的虚拟化&#xff0c;打开控制面板&#xff0c;点击程序&#xff0c;在程序和功能中可以看到启动和关闭window功能&#xff0c;点开后&#xff0c;找到Hyper-V&#xff0c;Wi…

堆排序-普通建堆与线性建堆的比较

前言 个人小记 一、代码如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define MAX_COUNT 100000000 #define father(i) ((i)/2) #define left(i) ((i)*2) #define right(i) ((i)*2)1 #define TEST(func,a…