mysql 将列值转变为列的方法


  本文标签:列值,转变,列

复制代码 代码如下:

-- 创建库
CREATE TABLE `rate` (
 `uname` VARCHAR (300),
 `object` VARCHAR (300),
 `score` VARCHAR (300)
);

-- 插入数据
INSERT INTO test.rate (uname, object, score)
 VALUES(aaa, chinese, 67),
 (aaa, math, 89),
 (aaa, physical, 89),
 (bbb, chinese, 67),
 (bbb, math, 75),
 (bbb, physical, 89);


-- 查询
SELECT DISTINCT uname AS 姓名,
SUM(CASE object
WHEN chinese THEN score END)  AS 语文,
SUM(CASE object
WHEN math THEN score END)  AS 数学,
SUM(CASE object
WHEN physical THEN score END)  AS 物理 FROM rate GROUP BY uname;