2016-09-27 3 views
1

Я создал простую таблицу, которая хранит номера, как показано ниже:Преобразование отдельных значений столбцов в одну строку в SQL Oracle

CREATE TABLE saleshist (q1 NUMBER); 
INSERT INTO saleshist VALUES (100); 
INSERT INTO saleshist VALUES (101); 
INSERT INTO saleshist VALUES (102); 
INSERT INTO saleshist VALUES (103); 

select * from saleshist 

Приведенный выше выбор показывает один столбец, как:

100 
102 
102 
103 

Я хочу видеть выход, как показано ниже:

100,101,102,103 

Да его значение столбца, разделенное запятыми, в одной строке как одно значение. Это просто пример, который я имел в виду, и значения столбцов могут быть многочисленными. Я думаю, UNPIVOT может это сделать, но я не могу это правильно понять. Лучший способ, которым я думаю о решении этого, написать скрипт perl и выполнить запрос, а затем преобразовать строки в столбцы с разделением запятой. Есть ли прямой способ сделать это в самом sql?

ответ

2

Вы можете использовать LISTAGG:

select listagg(q1, ',') within group (order by null) from saleshist 
Смежные вопросы