1. 程式人生 > >mysql行列轉換示例

mysql行列轉換示例

現把轉換方法列舉如下:

1、縱錶轉橫表:

    縱表結構 TableA 

Name

Course

Grade

張三

語文

75

張三

數學

80

張三

英語

90

李四

語文

95

李四

數學

55

 橫表結構 TableB

Name

語文

數學

英語

張三

75

80

90

李四

95

55

0

方法一:

select Name,

sum(case Course when ‘語文‘ then Grade else 0 end) as 語文,

sum(case Course when ‘數學‘ then Grade else 0 end) as 數學,

sum(case Course when ‘英語‘ then Grade else 0 end) as 英語

from TableA

group by Name

2、橫錶轉縱表的"SQL"示例
橫表結構: TEST_H2Z
      ID      姓名    語文        數學       英語      
      1       張三     80         90         70            
      2       李四     90         85         95          
      3       王五     88         75         90          
 
轉換後的表結構:  
      ID     姓名     科目     成績  
      1       張三     語文     80  
      2       張三     數學     90  
      3       張三     英語     70  
      4       李四     語文     90  
      5       李四     數學     80    
      6       李四     英語     99  
      7       王五     語文     85  
      8       王五     數學     96  
      9       王五     英語     88  
橫錶轉縱表SQL示例:
SELECT   姓名,'語文'   AS     科目,語文   AS   成績   FROM   TEST_H2Z   UNION   ALL 
SELECT   姓名,'數學'   AS     科目,數學   AS   成績   FROM   TEST_H2Z   UNION   ALL 
SELECT   姓名,'英語'   AS     科目,英語   AS   成績   FROM   TEST_H2Z
ORDER BY 姓名,科目 DESC;

原文連結:http://www.cnblogs.com/luluping/archive/2012/07/26/2610705.html