Как получить несколько значений в одной ячейке в Oracle
У меня есть таблица в Oracle, где есть две колонки. В первом столбце иногда встречаются повторяющиеся значения, которые соответствуют другому значению во втором столбце. Как я могу написать запрос, который показывает только уникальные значения первого столбца и все возможные значения из второго столбца?
Таблица выглядит примерно так, как показано ниже
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
1 ответ
Решение
Ты можешь использовать listagg()
если вы используете Oracle 11G
или выше, как
SELECT
COLUMN_1,
LISTAGG(COLUMN_2, '|') WITHIN GROUP (ORDER BY COLUMN_2) "ListValues"
FROM table1
GROUP BY COLUMN_1
Еще, см. Эту ссылку для альтернативы для более низких версий