1. 利用max(case when then)
聚合函数,max,取最大值
(case when course = '语文' then score else 0 end) ---判断
as 语文---别名作为列名

2.max(when course='语文' then score else 0 end)
mysql> SELECT
    ->  `name`,
    ->  MAX(
    ->   CASE 
    ->   WHEN course='语文' THEN
    ->    score else 0
    ->   END
    ->  ) AS 语文,
    ->  MAX(
    ->   CASE 
    ->   WHEN course='数学' THEN
    ->    score else 0
    ->   END
    ->  ) AS 数学, 
    ->  MAX(
    ->   CASE 
    ->   WHEN course='英语' THEN
    ->    score else 0
    ->   END
    ->  ) AS 英语
    -> FROM
    ->  student
    -> GROUP BY `name`
    -> ;
参考:https://www.jb51.net/article/109487.htm
用一个例子来演示会更加清晰
    
    










