我坚持这个要求 -
我有一些格式为
的数据
(条目现在显示两个时期(2011年1月)和(2011年2月)的数据,这些数据与单独出现的相同行显示。
最后,我需要使用dbms_output.put_line命令打印数据。
我正在使用Oracle 10.2g。
答案 0 :(得分:0)
Oracle 10g没有PIVOT功能,但您可以使用带有CASE
表达式的聚合函数将数据行转换为列。基本语法是:
select d.id,
d.site,
d.entrance,
sum(case when d.date = 'Jan.2011' then enters else 0 end) "Jan.2011",
sum(case when d.date = 'Feb.2011' then enters else 0 end) "Feb.2011"
from
(
select id, site, entrance, date, enters
from yourdata
) d
group by d.id, d.site, d.entrance;
注意:您可以使用当前查询替换带有yourdata
的子查询。