1、列转行
列拼接
wm_concat()
--11g
listagg() within group()
列转行汇总数据
decode()
--用decode实现行转列
--适用范围:8i,9i,10g及以后版本
SELECT NO,
SUM(decode(monthh, '01', total)) "一月",
SUM(decode(monthh, '02', total)) "二月",
SUM(decode(monthh, '03', total)) "三月"
FROM FEE
GROUP BY NO
ORDER BY NO asc
PIVOT()
--用Pivot实现行转列
--适用范围:11g及以后
SELECT *
FROM FEE a
PIVOT ( sum(nvl(a.total,0)) FOR monthh IN ('01' as 一月,'02' as 二月,'03' as 三月)) ORDER BY NO asc;
---
case when then else end
SELECT NO,
sum(case when Monthh='01' then TOTAL end) as 一月,
sum(case when Monthh='02' then TOTAL end) as 二月,
sum(case when Monthh='03' then TOTAL end) as 三月
FROM FEE
GROUP BY NO
ORDER BY NO asc