程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 教您如何實現DB2行轉列

教您如何實現DB2行轉列

編輯:DB2教程

DB2行轉列操作是很常見的問題,下面就教您如何實現DB2行轉列操作,如果您之前遇到過DB2行轉列的問題,不妨一看。

給出下面的數據:
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

想要的到結果:
YEAR        Q1          Q2          Q3          Q4
----------- ----------- ----------- ----------- -----------       
2004          20          30          15          10       
2005          18          40          12          27

這個SQL就可解決這個問題: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的原因,因為不加max的話結果會是這樣:
YEAR        Q1          Q2          Q3          Q4
----------- ----------- ----------- ----------- ----------- 
     2004          20           -           -           -  
     2004           -          30           -           -  
     2004           -           -          15           -  
     2004           -           -           -          10   
     2005          18           -           -           -   
     2005           -          40           -           -   
     2005           -           -          12           -   
     2005           -           -           -          27

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved