数据库函数大全(更新中)

IF(expr1,expr2,expr3)

SELECT IF(1<2,'yes ','no');#如果 1<2 满足返回 ‘yes’  否则 ‘no’,也可以用于修改  UPDATE salary SET sex =IF(Sex = 'm', 'f', 'm');
# sex  = 'm' 改为 ‘f’ , sex  = 'f' 改为 ‘m’

with

with xx_v1 as(
sql查询语句1
),xx_v2 as(
sql查询语句2
),xx_vn as(
sql查询语句n
)
select * from v3 

to_date --字符串转时间

SELECT to_date('2023-11-02','yyyy-mm-dd')

数学函数[1]

1、绝对值函数ABS(x)和返回圆周率函数PI()

求2,-3.3和-33的绝对值,输入语句如下:

SELECT ABS(2), ABS(-3.3), ABS(-33);

返回圆周率值,输入语句如下:

SELECT pi();

2、平方根函数SQRT(x)和求余函数MOD(x,y)

求9,40和-49的二次平方根,输入语句如下:

SELECT SQRT(9), SQRT(40);

对MOD(31,8),MOD(234, 10),MOD(45.5,6)进行求余运算,输入语句如下:

SELECT MOD(31,8),MOD(234, 10),MOD(45.5,6);

3、获取整数的函数CEIL(x)、CEILING(x)、FLOOR(x)

使用CEIL和CEILING函数返回最小整数,输入语句如下:

SELECT  CEIL(-3.35),CEILING(3.35);

FLOOR(x)返回不大于x的最大整数值,返回值转化为一个BIGINT。

使用FLOOR函数返回最大整数,输入语句如下:

SELECT FLOOR(-3.35), FLOOR(3.35);

4、四舍五入函数ROUND(x)和ROUND(x,y)

使用ROUND(x)函数对操作数进行四舍五入操作,输入语句如下:

SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);

使用ROUND(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y位,输入语句如下:

SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1), ROUND (232.38,-2);

5、符号函数SIGN(x)

使用SIGN函数返回参数的符号,输入语句如下:

SELECT SIGN(-21),SIGN(0), SIGN(21);

6、幂运算函数POW(x,y)、POWER(x,y)和EXP(x)

使用POW和POWER函数进行乘方运算,输入语句如下:

SELECT POW(2,2), POWER(2,2),POW(2,-2), POWER(2,-2);

使用EXP函数计算e的乘方,输入语句如下:

SELECT EXP(3),EXP(-3),EXP(0);

7、对数运算函数LOG(x)

使用LOG(x)函数计算自然对数,输入语句如下:

SELECT LOG(3);

8、角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)

使用RADIANS将角度转换为弧度,输入语句如下:

SELECT RADIANS(90),RADIANS(180);

使用DEGREES将弧度转换为角度,输入语句如下:

SELECT DEGREES(PI()), DEGREES(PI() / 2);

9、正弦函数SIN(x)和反正弦函数ASIN(x)

使用SIN函数计算正弦值,输入语句如下:

SELECT SIN(1), ROUND(SIN(PI()));

使用ASIN函数计算反正弦值,输入语句如下:

SELECT ASIN(0.8414709848078965);

10、余弦函数COS(x)反余弦函数ACOS(x)

使用COS函数计算余弦值,输入语句如下:

SELECT COS(0),COS(PI()),COS(1);

使用ACOS计算反余弦值,输入语句如下:

SELECT ACOS(1),ACOS(0), ROUND(ACOS(0.5403023058681398));

11、正切函数、反正切函数和余切函数

使用TAN函数计算正切值,输入语句如下:

SELECT TAN(0.3), ROUND(TAN(PI()/4));

使用ATAN函数计算反正切值,输入语句如下:

SELECT ATAN(0.30933624960962325), ATAN(1);

使用COT()函数计算正切值,输入语句如下,

SELECT COT(0.3), 1/TAN(0.3),COT(PI() / 4);

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

字符串函数[2]

1、计算字符数的函数char_length(str)和字符串长度(length)的函数

使用CHAR_LENGTH函数计算字符串字符个数,输入语句如下:

SELECT CHAR_LENGTH('date'), CHAR_LENGTH('egg');

使用LENGTH函数计算字符串长度,输入语句如下:

SELECT LENGTH('date'), LENGTH('egg');

2、合并字符串CONCAT(s1,s2,…),CONCAT_WS(x,s1,s2,…)

使用CONCAT函数连接字符串,输入语句如下:

SELECT CONCAT('PostgreSQL', '9.15'),CONCAT('Postgre',NULL, 'SQL');

使用CONCAT_WS函数连接带分隔符的字符串,输入语句如下:

SELECT CONCAT_WS('-', '1st','2nd', '3rd'), CONCAT_WS('*', '1st', NULL, '3rd');

3、获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

使用LEFT函数返回字符串中左边的字符,输入语句如下:

SELECT LEFT('football', 5);

使用RIGHT函数返回字符串中右边的字符,输入语句如下:

SELECT RIGHT('football', 4);

4、填充字符串LPAD(s1,len,s2)和RPAD(s1,len,s2)

使用LPAD函数对字符串进行填充操作,输入语句如下:

SELECT LPAD('hello',4,'??'), LPAD('hello',10,'??');

使用LPAD函数对字符串进行填充操作,输入语句如下:

SELECT RPAD('hello',4,'?'), RPAD('hello',10,'?');

5、删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

使用LTRIM函数删除字符串左边的空格,输入语句如下:

SELECT '(  book  )',CONCAT('(',LTRIM('  book  '),')');

使用LTRIM函数删除字符串右边的空格,输入语句如下:

SELECT '(  book  )',CONCAT('(', RTRIM ('  book  '),')');

使用TRIM函数删除指定字符串两端的空格,输入语句如下:

SELECT '(  book  )',CONCAT('(', TRIM('  book  '),')');

6、删除指定字符串的函数TRIM(s2 from s)

使用TRIM(s1 FROM s)函数删除字符串中两端指定的字符,输入语句如下:

SELECT TRIM('xy' FROM 'xyboxyokxyxy') ;

7、重复生成字符串的函数REPEAT(s,n)

使用REPEAT函数重复生成相同的字符串,输入语句如下:

SELECT REPEAT('PostgreSQL', 3);

8、替换函数REPLATE(s,s1,s2)

使用REPLACE函数进行字符串替代操作,输入语句如下:

SELECT REPLACE('xxx.PostgreSQL.com', 'x', 'w');

9、获取指定子串的函数SUBSTRING(s,n,len)

使用SUBSTRING函数获取指定位置处的子字符串,输入语句如下:

SELECT SUBSTRING('breakfast',5) AS col1, 
SUBSTRING('breakfast',5,3) AS col2,SUBSTRING('lunch', -3) AS col3,

10、匹配子串开始位置的函数POSITION(str1 in str)

使用POSITION函数查找字符串中指定子字符串的开始位置,输入语句如下:

SELECT POSITION('ball' IN 'football');

11、字符串逆序的函数REVERSE(s)

使用REVERSE函数反转字符串,输入语句如下:

SELECT REVERSE('abc');

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

日期和时间函数[3]

1、获取当前日期的函数和当前时间的函数

使用日期函数获取系统当期日期,输入语句如下:

SELECT CURRENT_DATE;

使用时间函数获取系统当期日期(返回时带时区),输入语句如下:

SELECT CURRENT_TIME;

使用时间函数获取系统当期日期(返回时不带时区),输入语句如下:

SELECT LOCALTIME;

2、返回当前日期和时间的函数

使用日期时间函数获取当前系统日期和时间,输入语句如下:

SELECT CURRENT_TIMESTAMP,LOCALTIMESTAMP,NOW();

3、获取指定值的日期

使用EXTRACT函数从月份中提取日期,输入语句如下:

SELECT EXTRACT(DAY FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数从月份中提取月份,输入语句如下:

SELECT EXTRACT(MONTH FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数从月份中提取年份,输入语句如下:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数查询指定日期是一年中的第几天,输入语句如下:

SELECT EXTRACT(DOY FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数查询指定日期是一周中的星期几,输入语句如下:

SELECT EXTRACT(DOW FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数查询指定日期是该年的第几季度(1-4),输入语句如下:

SELECT EXTRACT(QUARTER FROM TIMESTAMP '2012-09-10 10:18:40');

4、获取时间的当时时间

 date_trunc --获取时间的当时时间

可用于按时间分组;比如按照时间月分组
示例:
SELECT DATE_TRUNC('month', date_column) as month, COUNT(*) as count
FROM table_name
GROUP BY month
ORDER BY month;SELECT date_trunc('year',now())##获取当前年:2023-01-01 00:00:00+00SELECT date_trunc('month',now())##获取当前月:2023-12-01 00:00:00+00SELECT date_trunc('week',now())##获取当前周:2023-12-04 00:00:00+00SELECT date_trunc('day',now())##获取当前日:2023-12-06 00:00:00+00小时:hour 
分钟:minute 
秒:second

5、日期和时间的运算操作

计算指定日期加上间隔天数后的结果,输入语句如下:

SELECT DATE '2019-09-28' + integer '10';

计算指定日期加上间隔小时后的结果,输入语句如下:

SELECT DATE '2012-09-28' + interval '3 hour';

计算指定日期加上指定时间后的结果,输入语句如下:

SELECT DATE '2012-09-28' + time '06:00';

计算指定日期和时间加上间隔时间后的结果,输入语句如下:

SELECT TIMESTAMP '2012-09-28 02:00:00' + interval '10 hours';

计算指定日期之间的间隔天数,输入语句如下:

SELECT date '2012-11-01' - date '2012-09-10';

计算指定日期减去间隔天数后的结果,输入语句如下:

SELECT DATE '2012-09-28' - integer '10';

计算整数与天数相乘的结果,输入语句如下:

SELECT 15 * interval '2 day';

计算整数与秒数相乘的结果,输入语句如下:

SELECT 50 * interval '2 second';

计算小时数与整数相乘的结果,输入语句如下:

SELECT interval '1 hour' / integer  '2';

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

条件判断函数[4]

1、CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2][ELSE rn] END;

意思是如果expr的值等于某个vn,则返回对应位置THEN后面的结果,如果与所有值都不相等,则返回ELSE后面的rn。

使用CASE value WHEN语句执行分支操作,输入语句如下:

SELECT CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;

2、CASE WHEN v1 THEN r1 [WHEN v2 THEN r2][ELSE rn] END;

使用CASE WHEN语句执行分支操作,输入语句如下:

SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END;

系统信息函数[5]

1、获取PostgreSQL版本号

查看当前PostgreSQL版本号,输入语句如下:

SELECT VERSION();

2、获取用户名的函数

获取当前登陆用户名称,输入语句如下:

SELECT USER, CURRENT_USER;

加密函数[6]

1、加密函数MD5(str)

使用MD5函数加密字符串,输入语句如下:

SELECT MD5 ('mypwd');

2、加密函数ENCODE(str,pswd_str)

使用ENCODE加密字符串,输入语句如下:

SELECT ENCODE('secret','hex'), LENGTH(ENCODE('secret','hex'));

3、解密函数DECODE(cypt_str,pswd_str)

使用DECODE函数解密被ENCODE加密的字符串,输入语句如下:

SELECT DECODE(ENCODE('secret','hex'),'hex');

改变数据类型的函数[7]

CAST(x, AS type)函数将一个类型的值转换为另一个类型的值。

使用CAST函数进行数据类型的转换,将整数类型100转成两位字符串的类型10,SQL语句如下:

SELECT CAST(100 AS CHAR(2));

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

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

相关文章

点击el-tree小三角后去除点击后的高亮背景样式,el-tree样式修改

<div class"videoTree" v-loading"loadingTree" element-loading-text"加载中..." element-loading-spinner"el-icon-loading" element-loading-background"rgba(0, 0, 0, 0.8)" > <el-tree :default-expand-all&q…

鸿蒙4.0开发笔记之ArkTS语法基础之应用生命周期与页面中组件的生命周期(十六)

文章目录 一、应用生命周期二、生命周期函数定义三、生命周期五函数练习 一、应用生命周期 1、定义 应用生命周期就是代表了一个HarmonyOS应用中所有页面从创建、开启到销毁等过程的全生命周期。查看路径如下&#xff1a; Project/entry/src/main/ets/entryability/EntryAbili…

libevent库中的http相关函数举例

evhttp_set_cb 是一个用于设置回调函数的函数&#xff0c;该回调函数在 Libevent 的 HTTP 服务器框架 (libevent-http) 中用于处理 HTTP 请求。这个函数需要三个参数&#xff1a;一个 evhttp 实例&#xff0c;一个回调函数&#xff0c;以及一个用于传递到回调函数的 "ctx&…

SpringBoot集成Elasticsearch8.x(9)|(RestClient实现Elasticsearch的简单操作)

SpringBoot集成Elasticsearch8.x(9)|(RestClient curl实现Elasticsearch的操作) 文章目录 SpringBoot集成Elasticsearch8.x(9)|(RestClient curl实现Elasticsearch的操作)@[TOC]前言一、DSL 介绍二、初始化客户端三、封装RestClient dsl执行三、更新1.实用script更新es…

Google Guava简析

Google Guava 是Google开源的一个Java类库&#xff0c;对基本类库做了扩充。感觉最大的价值点在于其 集合类、Cache和String工具类。 github项目地址&#xff1a;GitHub - google/guava: Google core libraries for Java github文档地址&#xff1a;Home google/guava Wiki …

17、XSS——session攻击

文章目录 一、session攻击简介二、主要攻击方式2.1 预测2.2 会话劫持2.3 会话固定 一、session攻击简介 session对于web应用是最重要&#xff0c;也是最复杂的。对于web应用程序来说&#xff0c;加强安全性的首要原则就是&#xff1a;不要信任来自客户端的数据&#xff0c;一定…

Spring Boot与Mybatis基础配置(手动写增删改查)

一、 配置 1.新建项目 1.项目基础配置 解释&#xff1a;记得把这个改成start.aliyun.com要不没有java8也就是jdk1.8 2.项目依赖配置 2.配置maven 配置前&#xff1a; 配置后&#xff1a; 3.创建子项目并配置父子项目pom.xml 配置父pom.xml 声明当前项目不是要打成jar包的…

NFC和蓝牙在物联网中有什么意义?如何选择?

#NFC物联网# #蓝牙物联网# 在物联网中&#xff0c;NFC和蓝牙有什么意义&#xff1f; NFC在物联网中代表近场通信技术。它是一种短距离、高频的无线通信技术&#xff0c;可以在近距离内实现设备间的数据传输和识别。NFC技术主要用于移动支付、电子票务、门禁、移动身份识别、防…

利用阿里云 DDoS、WAF、CDN 和云防火墙为在线业务赋能

在这篇博客中&#xff0c;我们将详细讨论使用阿里云 CDN 和安全产品保护您的在线业务所需的步骤。 方案描述 创新技术的快速发展为世界各地的在线业务带来了新的机遇。今天的人们不仅习惯了&#xff0c;而且依靠互联网来开展他们的日常生活&#xff0c;包括购物、玩游戏、看电…

【python VS vba】(7) python与numpy (建设ing)

目录 1 numpy 的基本介绍 2 numpy里的两种新数据类型&#xff1a;ndarray 和 matrix 2.1 numpy特殊的数据类型 2.1.1 python的数据类型 2.1.2 首先 python原生的list 和 tuple 2.1.3 numpy的数据类型 2.2 np.matrix() 或者 np.mat() 2.2.1 首先&#xff0c;两种写法相…

基于PicGo实现Typora图片自动上传GitHub

文章目录 一. 引言二. 原理三. 配置3.1 GitHub 设置3.2 下载配置 PicGo3.3 配置 Typora3.4 使用 一. 引言 Typora是一款非常好的笔记软件&#xff0c;但是有一个比较不好的地方&#xff1a;默认图片是存放在本地缓存中。这就会导致文件夹一旦被误删或电脑系统重装而忘记备份文件…

pymysql报错: unable to rollback、Already closed

参考&#xff1a; https://www.coder.work/article/4516746 https://www.cnblogs.com/leijiangtao/p/11882107.html https://stackoverflow.com/questions/55116007/pymysql-query-unable-to-rollback unable to rollback处理&#xff1a; # 关闭光标对象 cursor.close() # 关…

华为OD机试 - 执行任务赚积分(Java JS Python C)

题目描述 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。 输入…

【Flink on k8s】- 8 - Flink kubernetes operator 的架构和设计

目录 1、整体介绍 2、架构体系 2.1 架构介绍 2.2 Control loop(控制循环)

18、XSS——cookie安全

文章目录 1、cookie重要字段2、子域cookie机制3、路径cookie机制4、HttpOnly Cookie机制5、Secure Cookie机制6、本地cookie与内存cookie7、本地存储方式 一般来说&#xff0c;同域内浏览器中发出的任何一个请求都会带上cookie&#xff0c;无论请求什么资源&#xff0c;请求时&…

西南科技大学C++程序设计实验六( 继承与派生一)

一、实验目的 1. 理解不同继承属性对派生类访问基类成员的区别 2. 掌握单继承程序编写 二、实验任务 1、调试下列程序,并在对程序进行修改后再调试,指出调试中的出错原因(该题中A为基类,B为派生类,B以public方式继承A) 重点:理解不同继承方式数据的访问权限,派生类…

.kann勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 在数字化的今天&#xff0c;.kann勒索病毒等数字威胁正日益猖狂&#xff0c;给个人和企业的数据安全带来了巨大威胁。本文将深入介绍.kann勒索病毒的特征&#xff0c;提供有效的数据恢复方法&#xff0c;并分享一些预防措施&#xff0c;助您更好地在数字世界…

Java利用TCP实现简单的双人聊天

一、创建新项目 首先创建一个新的项目&#xff0c;并命名为聊天。然后创建包&#xff0c;创建两个类&#xff0c;客户端&#xff08;SocketClient&#xff09;和服务器端&#xff08;SocketServer&#xff09; 二、实现代码 客户端代码&#xff1a; package 聊天; import ja…

Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection 论文阅读

Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection 摘要1.介绍2.相关工作异常检测Memory networks 3. Memory-augmented Autoencoder3.1概述3.2. Encoder and Decoder3.3. Memory Module with Attention-based S…

mysql知识分享(包含安装卸载)(一)

如果博客有错误&#xff0c;请佬指正。 目录 注意&#xff1a;打开cmd时要有管理员身份打开&#xff0c;重要 为何使用数据库&#xff1f; 数据库的相关概念 关系型数据库 关系型数据库设计规则 表&#xff0c;记录&#xff0c;字段 表的关联关系 一对一关联 一对多关系 …