mysql經典問題,將行轉爲列。
原表
sum(if(條件,列值,0))語法用例:
select name,sum(if(subject="語文",score,0)) as “語文” from grade GROUP BY name
if中第一個參數爲條件,符合條件的內容纔會將第二個參數相加,不符合的內容將第三個參數相加。
第二個參數爲要相加的參數,可以用常量,也可以用字段值。
第三個參數爲條件爲假時相加的值,通常設爲0.
爲了將行轉爲列(這種操作一般用於統計),可使用如下語句:
select name,sum(if(subject="語文",score,0)) as “語文”,
sum(if(subject="數學",score,0)) as “數學”,sum(if(subject="英語",score,0)) as “英語”
from grade GROUP BY name
結果: