2016-09-27 85 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 
相关问题