使用sql查询输出更改

使用sql查询输出更改,sql,oracle,Sql,Oracle,如何将下表的sql输出转换为以下格式 桌子 预期格式 如果您有一个表,最简单的方法可能是条件聚合: select date, sum(case when name = 'A_SPACE' then value else 0 end) as a_space, sum(case when name = 'B_SPACE' then value else 0 end) as b_space from t group by date order by date; 如果您的表

如何将下表的sql输出转换为以下格式

桌子 预期格式 如果您有一个表,最简单的方法可能是条件聚合:

select date,
       sum(case when name = 'A_SPACE' then value else 0 end) as a_space,
       sum(case when name = 'B_SPACE' then value else 0 end) as b_space
from t
group by date
order by date;
如果您的表是查询的结果,那么您可能可以将类似的逻辑合并到查询中。

试试这个

SELECT * 
FROM tablename PIVOT( Max(value) FOR NAME IN('A_SPACE','B_SPACE')) 
ORDER BY dates;
演示:

如果您需要动态轴心,请参阅以下文章


@Aurelian Ok UpdatengSearch在文档中,在这个网站上,或者在web上搜索“pivot”。@AlexPoole是的,我想我在寻找pivot我们有更多的列,比如a_空间、b_空间、c_空间等等。。。可以从不同的查询中提取。想知道我们是否可以用pivot自动化它,而不是手动编写总和statment@user1595858 . . . 谷歌甲骨文动态轴心。
select date,
       sum(case when name = 'A_SPACE' then value else 0 end) as a_space,
       sum(case when name = 'B_SPACE' then value else 0 end) as b_space
from t
group by date
order by date;
SELECT * 
FROM tablename PIVOT( Max(value) FOR NAME IN('A_SPACE','B_SPACE')) 
ORDER BY dates;