SQL语法基础-其他函数V

server/2024/10/21 5:51:31/

SQL语法基础-其他函数V

  • 一、数据类型转换函数
  • 二、系统信息函数
  • 三、条件表达式函数
  • 四、XML相关函数
  • 五、JSON函数(从Oracle 12c开始支持)

一、数据类型转换函数

这类函数用于将数据从一种类型转换为另一种类型,非常有用于数据清洗和准备阶段。

TO_CHAR: 将数字或日期数据转换成字符串

sql">SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual;
-- 2024-04-21 15:50:45
sql">SELECT TO_CHAR(123456789, 'FM$9,999,999,999') AS formatted_number FROM dual;
-- $123,456,789

TO_NUMBER: 将字符串转换成数字

sql">SELECT TO_NUMBER('12345', '99999') AS tonumber FROM dual;
-- 12345

TO_DATE: 将字符串转换成日期

sql">SELECT TO_DATE('2024-04-21', 'YYYY-MM-DD') AS todate FROM dual;
-- 2024-04-21 00:00:00

TO_TIMESTAMP: 将字符串转换为时间戳

sql">SELECT TO_TIMESTAMP('2024-04-21 16:00:00', 'YYYY-MM-DD HH24:MI:SS') AS timestamp FROM dual;
-- 2024-04-21 16:00:00.000000000

CAST: 将表达式转换为指定数据类型

sql">SELECT CAST('123' AS INTEGER) AS tonumber FROM dual;
-- 123

二、系统信息函数

这些函数提供关于数据库系统本身的信息,如用户信息、环境变量等。

USER: 返回当前数据库用户的用户名

sql">SELECT USER FROM dual;
-- SYSTEM

UID: 返回当前用户的ID

sql">SELECT UID FROM dual;
-- 5

SYS_CONTEXT(‘namespace’, ‘parameter’): 获取当前会话的特定环境参数

sql">SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM dual;
-- SYSTEM

DBTIMEZONE: 返回数据库时区

sql">SELECT DBTIMEZONE FROM dual;
-- +00:00

SESSIONTIMEZONE: 返回当前会话的时区

sql">SELECT SESSIONTIMEZONE FROM dual;
-- +08:00

三、条件表达式函数

这些函数根据不同的条件来选择不同的输出,非常适合处理多条件查询。

DECODE: 简化IF-THEN-ELSE逻辑,根据expression的值返回对应的result

sql">SELECT DECODE(1, 1, 'Match', 'No Match') FROM dual;
-- Match

CASE WHEN condition THEN result [ELSE result] END: 提供IF-THEN-ELSE逻辑的另一种实现方式,更易于读写

sql">SELECT CASE WHEN 1=1 THEN 'True' ELSE 'False' END FROM dual;
-- True

NVL(expr1, expr2): 如果expr1是NULL,则返回expr2

sql">SELECT NVL(NULL, 'Default Value') FROM dual;
-- Default Value

COALESCE(expr1, expr2, …, exprN): 返回参数列表中第一个非NULL的值

sql">SELECT COALESCE(NULL, NULL, 'First Non-Null Value') FROM dual;
-- First Non-Null Value

四、XML相关函数

这些函数用于处理XML格式的数据,包括生成和提取XML数据。

XMLAGG: 聚合多行数据到一个XML类型的结果

sql">SELECT XMLAGG(XMLELEMENT(E "item", column_name)).getClobVal() AS xml_output FROM table_name;

XMLELEMENT: 创建一个XML元素

sql">SELECT XMLELEMENT("Employee", 'John Doe') FROM dual;

XMLFOREST: 创建一系列的XML元素

sql">SELECT XMLFOREST(column_name AS "Column", another_column AS "Another") FROM table_name;

XMLPARSE: 解析字符数据为XML格式

sql">SELECT XMLPARSE(DOCUMENT '<root><child>content</child></root>') FROM dual;

五、JSON函数(从Oracle 12c开始支持)

用于处理JSON数据,这些函数可以解析JSON文本、生成JSON文本和查询JSON数据。

JSON_VALUE: 提取JSON文档中的标量值

sql">SELECT JSON_VALUE('{"name":"John", "age":30}', '$.name') FROM dual;

JSON_OBJECT: 生成JSON对象

sql">SELECT JSON_OBJECT('name' VALUE 'John', 'age' VALUE 30) FROM dual;

JSON_ARRAY: 生成JSON数组

sql">SELECT JSON_ARRAY(1, 2, 'three', NULL) FROM dual;

JSON_QUERY: 提取JSON文档中的复杂元素

sql">SELECT JSON_QUERY('{"employees": [{"name":"John", "age":30}]}', '$.employees[*]') FROM dual;

http://www.ppmy.cn/server/7618.html

相关文章

学习亚马逊云科技AWS云计算技术的三款官方免费3A游戏大作

玩3A大作免费电脑游戏&#xff0c;就能成为AWS云架构师、云开发大&#x1f42e;&#xff1f;这么好的事尊的假的&#xff1f;小李哥今天就来给大家介绍&#xff0c;如何通过玩AWS官方的定制版虚拟人生、炉石传说和密室逃脱游戏学习AWS。这三个游戏完全免费&#xff0c;没有任何…

Eureka 和 Consul两个注册中心的差异。

Eureka 和 Consul 都是流行的开源服务注册与发现解决方案&#xff0c;常被用于构建微服务架构中以实现服务之间的动态发现与管理。 Eureka&#xff08;由Netflix开发&#xff0c;现不再维护更新&#xff09; 优点&#xff1a; 易用性&#xff1a;提供简单易用的API和用户界面&…

ubuntu扩展根目录磁盘空间

ubuntu扩展根目录磁盘空间 扩展虚拟机磁盘空间 查看现有磁盘状态 查询现有分区状态&#xff0c;/dev/sda是我们要扩展的磁盘 fdisk -l 开始进行磁盘空间的扩容 parted /dev/sda#扩展3号分区的空间 resizepart 3刷新分区空间 resize2fs /dev/sda3查询扩展结果&#xff0c;…

组合总和III(Lc216)——剪枝+回溯

找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 解…

P3385 【模板】负环

题目描述 给定一个 n 个点的有向图&#xff0c;请求出图中是否存在从顶点 1 出发能到达的负环。 负环的定义是&#xff1a;一条边权之和为负数的回路。 输入格式 输入的第一行是一个整数 T&#xff0c;表示测试数据的组数。对于每组数据的格式如下&#xff1a; 第一行有两…

Unity 计时任务管理器TimeHandle

前言 项目体量过大时&#xff0c;在很多脚本用到了携程计时或者写在update里面&#xff0c;不方便管理和代码阅读&#xff0c;很容易混淆&#xff0c;所以需要一个计时任务管理器来统一控制计时器模块&#xff0c;便于修改、管理。计时器有很多种写法&#xff0c;我这里写的是适…

代码学习记录49---单调栈

随想录日记part49 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.04.20 主要内容&#xff1a;今天开始要学习单调栈的相关知识了&#xff0c;今天的内容主要涉及&#xff1a;柱状图中最大的矩形 84.柱状图中最大的矩形 Topic184.柱状图中最大的矩形 题目&…

使用python-can和cantools实现arxml报文解析、发送和接收的完整指南

文章目录 背景一、硬件支持二、环境准备1、python解释器安装2、python库安装 三、 收发案例四、 方法拓展1、canoe硬件调用2、回调函数介绍 结论 背景 在汽车行业中&#xff0c;CAN (Controller Area Network) 总线是用于车辆内部通信的关键技术。arxml文件是一种用于描述CAN消…