2

我坚持这个要求 -

我有一些格式的数据

在此处输入图像描述

(条目现在在同一行显示两个时期(2011 年 1 月)和(2011 年 2 月)的数据,而不是单独出现)。

最后,我需要使用 dbms_output.put_line 命令打印数据。

我正在使用 Oracle 10.2g。

4

1 回答 1

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当前查询。

于 2013-04-30T11:45:19.643 回答