數據庫行轉列

數據庫行轉列

name course score 
A   語文   88 
B   數學   87 
C   英語   67 
D   語文   90 
這是一張數據庫表中的字段,寫一個sql語句查處以下結果: 
姓名   語文  數學  英語 
--------------------- 
A    88    87    67 
B    90    86    89 

select name as 姓名,  
sum(case when course='語文' then score end) as 語文,  
sum(case when course='數學' then score end) as 數學,  
sum(case when course='物理' then score end) as 物理  
from t_Score group by name  

還能夠參考下面的方式: 
select 
    decode(t.grade_id,1,'一年級',2,'二年級',3,'三年級') 年級, 

    sum(decode(t.subject_name,’語文’,t.max_score,0)) 語文, 
    sum(decode(t.subject_name,'數學',t.max_score,0)) 數學, 
    sum(decode(t.subject_name,'英語',t.max_score,0)) 英語 
from 
    test_table t 
group by 
    t.grade_id 
參考一下/ sql

相關文章
相關標籤/搜索