数据库 列 转 行

技术分享

转成

技术分享

代码如下:

1 SELECT YEAR 年, 
2 SUM(CASE MONTH WHEN 1 THEN amount ELSE 0 END) 一月,
3 SUM(CASE WHEN MONTH=2 THEN amount ELSE 0 END) 二月,
4 SUM(CASE WHEN MONTH=3 THEN amount ELSE 0 END) 三月,
5 SUM(DECODE(MONTH,4,amount,0)) 四月
6 FROM temp_table_201307 GROUP BY YEAR

这里提供了三种方式实现:

1. CASE month WHEN THEN amount ELSE 0 END

不能判断区间:当month==1的时候,值为amount,否则为0;

2. CASE WHEN month = 2 THEN amount ELSE 0 END

推荐第二种写法(这是标准写法):可以判断区间

3. DECODE (MONTH,4,AMOUNT,0)

类似三元运算符(不能判断区间):month == 4 ? amount : 0

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。