Oracle 常用函数大全

news2024/11/25 22:35:09

文章目录

  • 一、空校验
    • 1. NVL 空校验
    • 2. COALESCE 空校验
  • 二、排序
    • 1. ORDER BY 排序
    • 2. ORDER BY DECODE 指定值排序
  • 三、排名
    • 1. RANK 排名
    • 2. DENSE RANK 密集排名
  • 四、限制条数
    • 1. ROWNUM 限制
    • 2. FETCH 限制
  • 五、字符串处理
    • 1. TO_CHAR 字符串转换
    • 2. || 字符串拼接
    • 3. CONCAT 字符串拼接
    • 4. INSTR 字符串包含
  • 六、日期处理
    • 1. TO_DATE 日期转换
  • 其他
    • LISTAGG 多行拼接
    • ROUND 四舍五入
    • LISTAGG
    • REGEXP_SUBSTR
    • REGEXP_REPLACE
    • CONNECT BY
    • OVER
    • TRUNC


一、空校验

1. NVL 空校验

NVL(exp1, exp2) :若 exp1 不为 NULL,则返回 exp1;若 exp1 为 NULL,则返回 exp2。

无论 exp1 是否为 NULL ,均会计算 exp2。

2. COALESCE 空校验

COALESCE(exp1, exp2, …, expn) :返回第一个非空表达式,如果全是 NULL,则返回 NULL。

顺序计算表达式的值,直到不为 NULL。


二、排序

1. ORDER BY 排序

ORDER BY column ASC

简单排序。

SELECT
	t1.USER_ID,
	t1.USER_NAME
FROM
	SYS_USER t1
ORDER BY
	t1.CREATE_TIME DESC

2. ORDER BY DECODE 指定值排序

ORDER BY DECODE(column, ‘特定值1’, 1, ‘特定值2’, 2, …, ‘其他值’, n) ASC

指定特定值的权重进行排序。

SELECT
	t1.USER_ID,
	t1.USER_NAME,
	t1.USER_STATUS
FROM
	SYS_USER t1
ORDER BY
	DECODE(t1.USER_STATUS, '特定值1', 1, '特定值2', 2, ..., '其他值', n) ASC

在这个例子中,USER_STATUS 中 ‘特定值1’ 的排序权重为1,‘特定值2’ 的排序权重为2,依此类推,并指定 ASC 顺序排序。


三、排名

1. RANK 排名

RANK() OVER (ORDER BY column DESC) AS column_rank

用于字段排名。多行数据的字段值相同时,排名相同。当前排名 = 上一个排名 + 上一个排名的总记录数。

SELECT
	t1.USER_ID,
	t1.USER_NAME,
	t1.SCORE,
	RANK() OVER (ORDER BY t1.SCORE DESC) AS SCORE_RANK
FROM
	SYS_USER t1

在这里插入图片描述

2. DENSE RANK 密集排名

DENSE RANK() OVER (ORDER BY column DESC) AS column_rank

用于字段排名。多行数据的字段值相同时,排名相同。当前排名 = 上一个排名 + 1。

SELECT
	t1.USER_ID,
	t1.USER_NAME,
	t1.SCORE,
	DENSE RANK() OVER (ORDER BY t1.SCORE DESC) AS SCORE_RANK
FROM
	SYS_USER t1

在这里插入图片描述


四、限制条数

1. ROWNUM 限制

WHERE ROWNUM <= n

只获取 n 条记录。ROWNUM 写在 WHERE 条件中,只能获取 n 条记录后再进行 ORDER BY 排序,无法在 ORDER BY 排序后获取前 n 条记录。

SELECT
	t1.USER_ID,
	t1.USER_NAME
FROM
	SYS_USER t1
WHERE
	ROWNUM <= 5

2. FETCH 限制

FETCH FIRST n ROWS ONLY

只获取前 n 条记录。可以在 ORDER BY 排序后获取前 n 条记录。

SELECT
	t1.USER_ID,
	t1.USER_NAME
FROM
	SYS_USER t1
ORDER BY
	t1.CREATE_TIME DESC
FETCH FIRST 5 ROWS ONLY

五、字符串处理

1. TO_CHAR 字符串转换

TO_CHAR(SYSDATE, ‘YYYY-MM-DD HH24:MI:SS’)

参数1:转换的对象(数字、日期或时间戳)。
参数2:格式模型(可选),指定如何格式化转换后的字符串。

SELECT 
	TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
FROM 
	SYS_USER t1

2. || 字符串拼接

str1 || str2 || …

|| 将 NULL 视为一个空字符串。|| 运算符优先级高于 CONCAT 函数。|| 可以用于连接字符串、数字或日期等不同类型的数据。

SELECT
	t1.USER_ID,
	t1.USER_NAME || '=' || t1.SCORE
FROM
	SYS_USER t1

3. CONCAT 字符串拼接

CONCAT(CONCAT(str1, str2), str3)

如果任何输入字符串为 NULL,CONCAT 返回 NULL。Oracle 的 CONCAT 函数只允许两两字符串拼接。

SELECT
	t1.USER_ID,
	CONCAT(CONCAT(t1.USER_NAME, '='), t1.SCORE)
FROM
	SYS_USER t1

4. INSTR 字符串包含

INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)。

例如:INSTR(‘string’, ‘in’, -1, 1) ,源字符串为 'string‘, 目标字符串为 ‘in’,查询起始位置为 -1(可省略,默认 -1),取第 1 个匹配项的位置(可省略,默认 1)。

<!-- 查询姓名包含‘王’的用户 -->
SELECT
	t1.USER_ID,
	t1.USER_NAME
FROM
	SYS_USER t1
WHERE
	INSTR(t1.USER_NAME, '王', -1, 1) > 0
<!-- 查询姓名包含‘王’的所有用户数量 -->
SELECT
	INSTR(t1.USER_NAME, '王', -1, 1) AS NUM
FROM
	SYS_USER t1

六、日期处理

1. TO_DATE 日期转换

其他

LISTAGG 多行拼接

LISTAGG( 待处理列, 连接符号 ) WITHIN GROUP(ORDER BY 拼接排序依据字段)
col:待处理列。
连接符号
拼接排序依据字段。

ROUND 四舍五入

ROUND(number,num_digits)

number 需要进行四舍五入的数字。
num_digits 指定需要四舍五入的小数位数。

LISTAGG

REGEXP_SUBSTR

REGEXP_REPLACE

CONNECT BY

OVER

TRUNC

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

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

相关文章

9.2C++

思维导图

咸鱼代写代码的都是什么人?真的能有收入么?

大家好&#xff0c;我是程序员鱼皮。看到一个帖子&#xff0c;是一位博主分享自己读研期间在咸鱼上靠帮别人代写代码接单的经历。由于内容过于真实&#xff0c;看完之后竟让我有些红温了。 我估计也有很多学编程的同学想自己接单帮别人代写代码&#xff0c;那代写代码真的能有收…

聚水潭ERP集成用友U8(用友U8主供应链)

源系统成集云目标系统 用友U8介绍 用友U8是一套企业级的解决方案&#xff0c;可满足不同的制造、商务模式下&#xff0c;不同运营模式下的企业经营管理。它全面集成了财务、生产制造及供应链的成熟应用&#xff0c;并延伸客户管理至客户关系管理&#xff08;CRM&#xff09;&…

支付宝开放平台-开发者社区——AI 日报「9 月 3 日」

1 逛完世界机器人大会&#xff0c;投资人说再也不想投人形机器人了 腾讯科技丨阅读原文 在2024 年世界机器人大会上&#xff0c;尽管人形机器人成为焦点&#xff0c;但一位长期关注该领域的投资人表示不再考虑投资。原因是目前人形机器人在工业和家用场景中表现不够突出&…

Error when attempting to add data source to Azure OpenAI api

题意&#xff1a;尝试向 Azure OpenAI API 添加数据源时出现错误 问题背景&#xff1a; My code is working for a call to Azure OpenAI when I dont have a datasource added. However, when I do add my datasource with the following parameters I get an error: 当我没…

AIGC时代从新手到高手:B端竞品分析实战案例与技巧分享

文章目录 1&#xff09;B端产品的信息获取困难2&#xff09;B端产品标准化程度低3&#xff09;需要具备业务知识1&#xff09;竞品画布就像一个菜谱&#xff0c;帮助新手快速上手2&#xff09;竞品画布相当于竞品分析报告的MVP&#xff08;最小可用产品&#xff09;&#xff0c…

新手如何下载微信视频号里面的短视频?推荐7种方法!

根据大数据分析我们发现还有不少用户不知道如何使用微信视频号下载视频&#xff1f;对此也发现不少小伙伴对内容阅读有所差异&#xff0c;对此专门为大家整理了图文以及视频相关教程&#xff0c;希望对大家有所帮助。 短视频下载 短视频下载一般包括市面上大部分的短视频内容为…

【BES2500x系列 -- RTX5操作系统】Battery模块 -- 创建电池检测定时器 --(十五)

&#x1f48c; 所属专栏&#xff1a;【BES2500x系列】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f49…

【Linux】进程状态(RSDT 阻塞 僵尸 孤儿)

目录 进程状态 进程状态的查看 R和S 运行状态 T/t 暂停状态 kill命令 D &#xff08;disk sleep&#xff09;状态、 Z 状态&#xff08;僵尸状态&#xff09; 孤儿状态 运行状态 阻塞状态 进程状态 一个进程通常有三种状态 ◉ 就绪状态&#xff08;Ready&#xff0…

Qt 去掉QDialog对话框的问号

QT 对话框的问号是什么&#xff1f; QDialog默认的window flag中包含了Qt::WindowContextHelpButtonHint,这个flag意思是在窗口上提供“上下文帮助”按钮 使用方式/调用方式 void QWidget::setWhatsThis(const QString &)比如&#xff1a; ui->lineEdit_1->setWh…

用亚马逊AI代码开发助手Amazon Q Developer开发应用(上篇)

快用人工智能帮程序员写代码&#xff01;今天小李哥就来介绍亚马逊推出的国际前沿人工智能AI代码开发助手Amazon Q Developer。目前该代码助手在Hugging Face代码生成权威测试集SWE-bench中排名第一&#xff0c;可以根据我们的需求生成整个代码项目&#xff0c;并可以帮助我们解…

C++入门基础,看这篇就足够了!

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 文章目录 0.前言1. C的关键字2.命名空间2.1 命名空间的定…

vue 中计算属性可以接收参数

代码中的value就是接收的参数 计算属性要接收参数要写在返回的时候 computed: {isButtonDisabled() {return (value) > {const num parseInt(value);return isNaN(num) || num < 0}},},//计算属性aaa(){return (value) >{写逻辑return 返回值}} 使用 <el-butto…

【数学建模】国赛论文写作技巧教学——模型假设与变量说明

一、模型假设 1、内容要求 模型假设是建立数学模型中非常关键的一步&#xff0c;这会关系到模型的成败和优劣。所以&#xff0c;应该细致地分析实际问题&#xff0c;从大量的变量中筛选出最能表现问题本质的变量&#xff0c;并简化它们的关系。由于假设一般不是实际问题直接提…

2024Hvv漏洞汇总(128个POC)

2024Hvv漏洞整理&#xff08;128个POC&#xff09; ​&#xff08;网上漏洞零零散散&#xff09;下面是收集到的且有POC的漏洞整理合集&#xff0c;鄙人分了三种格式供各位提取&#xff0c;下面贴上目录与图片&#xff0c;由于字数有点大&#xff0c;各位请移步网盘自行提取。…

MySQL 基础命令

目录 一、MySQL简介 1.MySQL 的主要特点包括 2.MySQL 的主要用途包括&#xff1a; 二、MySQL 基础命令 1. 基本操作 1.1 进入 1.2 选择数据库 1.3 修改密码 1.4 所有命令后面都要加 “;” 2. 创建 2.1 创建数据库 2.2 创建数据表 2.3 常见字段 3. 修改/更新 3.1…

[数据集][目标检测]街道乱放广告牌检测数据集VOC+YOLO格式114张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;114 标注数量(xml文件个数)&#xff1a;114 标注数量(txt文件个数)&#xff1a;114 标注类别…

关于LLC知识15

右手螺旋定则&#xff1a;四指指向电流的方向&#xff0c;拇指的方向就是磁通方向 变压器副边会产生一个和原磁通方向相反的磁通来阻碍它变大 这样原边绕组的电感量会变小&#xff1a;U/Ldi/dt对应的电流会变大 电感量越大&#xff0c;抑制电流能量越强 原边开路时候&#x…

【贪心算法】区间类算法题(整数替换、俄罗斯套娃、重构字符串等、C++)

文章目录 1. 前言2. 算法题1.整数替换2.俄罗斯套娃信封问题3.可被三整除的最大和4.距离相等的条形码5.重构字符串 1. 前言 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下最优决策的算法。贪心算法通常用来解决最优化问题&#xff0c…

sqlite数据插入效率

一、程序效率测试 时间相关接口&#xff1a; int gettimeofday(struct timeval*tv, struct timezone *tz); 功能&#xff1a;得到从1970年1月1日0时0分0秒到现在的秒数。<可以利用该函数来计算一个程序的运行时间&#xff0c;只需在程序前后调用该函数&#xff0c;…