【问题标题】:Convert a single column values into a single row in sql oracle在sql oracle中将单列值转换为单行
【发布时间】:2016-09-27 16:37:25
【问题描述】:

我创建了一个简单的表格,其中包含如下数字:

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 本身中做到这一点?

【问题讨论】:

    标签: sql oracle oracle11g


    【解决方案1】:

    你可以使用LISTAGG:

    select listagg(q1, ',') within group (order by null) from saleshist
    

    【讨论】:

      猜你喜欢
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多