縱表與橫表互轉的SQL


現把轉換方法列舉如下:

 

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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM