Plsql 将列转换为行
我坚持这个要求- 我有一些格式的数据 条目现在在同一行显示2011年1月和2011年2月的数据,分别显示 最后,我需要使用dbms_output.put_line命令打印数据Plsql 将列转换为行,plsql,oracle10g,pivot,Plsql,Oracle10g,Pivot,我坚持这个要求- 我有一些格式的数据 条目现在在同一行显示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 els
我使用的是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;
注意:您可以使用当前查询替换子查询中的数据。选择分区上的分区id、分区nm、分区tmp nm、月份、分区上的行编号按月份顺序按行编号rn从选择d.ce\U id、分区nm、分区tmp nm到分区日志,'MON.YYYY'月,和c。总计输入v\U tmp a、ttmp b、mv\U tmp\U每日流量c,tce d,其中a.tmp_id=c.tmp_id和b.tmp_id=c.tmp_id和d.ce_id=a.ce_id和c.log_ts介于“2011年1月1日”和“2011年2月28日”之间,a.ce_id=286按d.ce_id分组,d.ce_nm,至“MON.yyyyy”,b.tmp_nm按订单至“MON.yyyyyyy”说明