一、普通拼接
1、需求
oracle查询的数据是:
value1 |
---|
1 |
2 |
3 |
怎么获取:1/2/3
2、实现
- value1:是要拼接的字段
- value2:是表中的任意字段-可用于排序的字段,也可以是value1
-- 使用 LISTAGG 函数将多行数据连接成一个字符串,以 '/' 作为连接符
SELECT
LISTAGG(value1, '/') WITHIN GROUP (ORDER BY value2) AS join
FROM table;
二、进阶——分组后拼接
1、需求
oracle查询的数据是:
value1 | value2 |
---|---|
1 | 1 |
1 | 2 |
2 | 3 |
2 | 4 |
- 怎么获取
value1 | join |
---|---|
1 | 1-2 |
2 | 3-4 |
2、实现
- value1:是要拼接的字段
- value2:是表中的任意字段-可用于排序的字段,也可以是value1
-- 使用 LISTAGG 函数将多行数据连接成一个字符串,以 '-' 作为连接符
SELECT
value1,
LISTAGG(value1, '-') WITHIN GROUP (ORDER BY value2) AS join
FROM table
GROUP BY value1;
标签:LISTAGG,join,拼接,value2,value1,Oracle,GROUP,达梦
From: https://www.cnblogs.com/kakarotto-chen/p/18273266