+ -
当前位置:首页 → 问答吧 → oracle 行转列

oracle 行转列

时间:2011-10-10

来源:互联网

name month qty
a 201109 1
a 201110 1
a 201111 1
a 201112 1
b 201109 2
b 201110 2
b 201111 2
b 201112 2
c 201109 3
c 201110 3
c 201111 3
c 201112 3


转换成

name 201109 201110 201111 201112
a 1 1 1 1
b 2 2 2 2
c 3 3 3 3



month不一定是4个,如何才能高校,数据不多,3w多条
数据库版本是8i的

作者: yijiulove   发布时间: 2011-10-10

SQL code

--求合計時用sum,求最大時用max
SELECT 
NAME,
sum(CASE WHEN [month]=201109 THEN qty ELSE 0 END) AS '201109',
sum(CASE WHEN [month]=201110 THEN qty ELSE 0 END) AS '201110',
sum(CASE WHEN [month]=201111 THEN qty ELSE 0 END) AS '201111',
............
FROM tablename
GROUP BY Name

作者: roy_88   发布时间: 2011-10-10