我坚持这个要求 -
我有一些格式的数据
(条目现在在同一行显示两个时期(2011 年 1 月)和(2011 年 2 月)的数据,而不是单独出现)。
最后,我需要使用 dbms_output.put_line 命令打印数据。
我正在使用 Oracle 10.2g。
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
当前查询。