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

person siddhu    schedule 15.04.2016    source источник


Ответы (1)


Вы можете использовать listagg(), если вы используете Oracle 11G или выше, например

SELECT 
    COLUMN_1,
    LISTAGG(COLUMN_2, '|') WITHIN GROUP (ORDER BY COLUMN_2) "ListValues"
FROM table1
GROUP BY COLUMN_1

В противном случае см. эту ссылку для альтернативы для более низких версий.

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

person Rahul    schedule 15.04.2016