oracle中listagg函数的用法

2024年 5月 3日 91.4k 0

listagg 函数将一组行的数据连接成一个字符串,使用指定的连接符分隔元素。用法包括:1. 连接一个列中的所有值;2. 使用连接符分隔值;3. 忽略 null 值;4. 按组分区;5. 按顺序连接值。

oracle中listagg函数的用法

Oracle 中 LISTAGG 函数的用法

定义:
LISTAGG 函数将一组行的数据连接成一个字符串,并使用指定的连接符分隔各个元素。

语法:

LISTAGG(expression, delimiter [IGNORE NULLS]) OVER (PARTITION BY partition_expression ORDER BY order_expression)

参数:

  • expression:要连接的数据列
  • delimiter:连接元素之间的字符分隔符(可选)
  • IGNORE NULLS:忽略 NULL 值(可选)
  • partition_expression:分区的数据列,指定组分元素所处的组(可选)
  • order_expression:指定连接元素的顺序(可选)

用法:

LISTAGG 函数通常用于将多个行合并为一个字符串,以方便显示或处理。以下是其典型用法:

1. 连接一个列中的所有值

SELECT LISTAGG(name) FROM table_name;

2. 使用连接符分隔值

SELECT LISTAGG(name, ', ') FROM table_name;

3. 忽略 NULL 值

SELECT LISTAGG(name IGNORE NULLS) FROM table_name;

4. 按组分区

SELECT LISTAGG(name) OVER (PARTITION BY group_id) FROM table_name;

5. 按顺序连接值

SELECT LISTAGG(name) OVER (ORDER BY name) FROM table_name;

示例:

下表显示了员工表中使用 LISTAGG 函数连接员工姓名的示例:

员工 ID 姓名
1 John
2 Jane
3 David

使用 LISTAGG 函数连接所有员工姓名:

SELECT LISTAGG(name) FROM employees;

结果:

John, Jane, David

使用逗号作为连接符:

SELECT LISTAGG(name, ', ') FROM employees;

结果:

John, Jane, David

按部门分区并连接每个部门的员工姓名:

SELECT LISTAGG(name) OVER (PARTITION BY department) FROM employees;

结果:

John
Jane
David

以上就是oracle中listagg函数的用法的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论