Как получить несколько значений в одной ячейке в 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

Еще, см. Эту ссылку для альтернативы для более низких версий

Oracle эквивалент MySQL group_concat

Другие вопросы по тегам