2016-09-27 86 views
1

我已經創建了一個簡單的表,其保持數字如下:轉換單個列值成一個單一的行中的SQL預言

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 
相關問題