Oracle、達夢:拼接數組數據為一行
一、普通拼接
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;
浙公網安備 33010602011771號