最近在发销售额通报的时候遇到在Oracle中实现行转成列的问题,要实现的目标是对一张表中的列名,变成每一行的维度来查看,如图:
原始表 line_t1 数据如下:
要实现的效果如下:
整理后的表 line_to_row_test 如下:
以‘毛衣’为例,其实原理就是,在原来的表line_t1中,去统计:当销售品为‘毛衣’的时候,广州的销售数量是多少,深圳的销售量是多少,珠海的销售量是多少,见代码:
select '毛衣' 销售品,
sum(case when 经营单位='广州' then 毛衣 else 0 end)广州,
sum(case when 经营单位='深圳' then 毛衣 else