原表样式:
处理结果:
方法1:decode
--用decode实现行转列
--适用范围:8i,9i,10g及以后版本
SELECT NO,
SUM(decode(CODE, '010', COST)) "010",
SUM(decode(CODE, '011', COST)) "011",
SUM(decode(CODE, '019', COST)) "019",
SUM(decode(CODE, '047', COST)) "047",
SUM(decode(CODE, '055', COST)) "055",
SUM(decode(CODE, '068', COST)) "068"
FROM FEE
GROUP BY NO
ORDER BY NO asc
方法2:pivot
--用Pivot实现行转列
--适用范围:11g及以后
SELECT *
FROM FEE
PIVOT (
SUM(NVL(COST,0))
FOR CODE
IN ('010','011','019','047','055','068')
) ORDER BY NO asc;