教您如何實(shí)現(xiàn)DB2行轉(zhuǎn)列
DB2行轉(zhuǎn)列操作是很常見的問題,下面就教您如何實(shí)現(xiàn)DB2行轉(zhuǎn)列操作,如果您之前遇到過DB2行轉(zhuǎn)列的問題,不妨一看。
給出下面的數(shù)據(jù):
CREATE TABLE Sales (Year INT, Quarter INT, Results INT)
YEAR QUARTER RESULTS
----------- ----------- -----------
2004 1 20
2004 2 30
2004 3 15
2004 4 10
2005 1 18
2005 2 40
2005 3 12
2005 4 27
想要的到結(jié)果:
YEAR Q1 Q2 Q3 Q4
----------- ----------- ----------- ----------- -----------
2004 20 30 15 10
2005 18 40 12 27
這個(gè)SQL就可解決這個(gè)問題:S
ELECT Year,
MAX(CASE WHEN Quarter = 1
THEN Results END) AS Q1,
MAX(CASE WHEN Quarter = 2
THEN Results END) AS Q2,
MAX(CASE WHEN Quarter = 3
THEN Results END) AS Q3,
MAX(CASE WHEN Quarter = 4
THEN Results END) AS Q4
FROM Sales
GROUP BY Year
解釋一下為什么要加max的原因,因?yàn)椴患觤ax的話結(jié)果會是這樣:
YEAR Q1 Q2 Q3 Q4
----------- ----------- ----------- ----------- -----------
2004 20 - - -
2004 - 30 - -
2004 - - 15 -
2004 - - - 10
2005 18 - - -
2005 - 40 - -
2005 - - 12 -
2005 - - - 27
【編輯推薦】