Oracle中如何获取同一个单元格中的多个值
How to get multiple values in same cell in Oracle
我在 Oracle 中有一个 table,其中有两列。在第一列中,有时会有重复的值对应于第二列中的不同值。我如何才能编写一个仅显示第一列的唯一值和第二列的所有可能值的查询?
table 看起来有点像下面
COLUMN_1 | COLUMN_2
NUMBER_1 | 4
NUMBER_2 | 4
NUMBER_3 | 1
NUMBER_3 | 6
NUMBER_4 | 3
NUMBER_4 | 4
NUMBER_4 | 5
NUMBER_4 | 6
如果您使用 Oracle 11G
或更高版本,您可以使用 listagg()
SELECT
COLUMN_1,
LISTAGG(COLUMN_2, '|') WITHIN GROUP (ORDER BY COLUMN_2) "ListValues"
FROM table1
GROUP BY COLUMN_1
否则,请参阅此 link 以获得较低版本的替代方案
我在 Oracle 中有一个 table,其中有两列。在第一列中,有时会有重复的值对应于第二列中的不同值。我如何才能编写一个仅显示第一列的唯一值和第二列的所有可能值的查询?
table 看起来有点像下面
COLUMN_1 | COLUMN_2
NUMBER_1 | 4
NUMBER_2 | 4
NUMBER_3 | 1
NUMBER_3 | 6
NUMBER_4 | 3
NUMBER_4 | 4
NUMBER_4 | 5
NUMBER_4 | 6
如果您使用 Oracle 11G
或更高版本,您可以使用 listagg()
SELECT
COLUMN_1,
LISTAGG(COLUMN_2, '|') WITHIN GROUP (ORDER BY COLUMN_2) "ListValues"
FROM table1
GROUP BY COLUMN_1
否则,请参阅此 link 以获得较低版本的替代方案