您的位置:首页 > 博客中心 > 数据库 >

mysql 将列值转变为列的方法(转)

时间:2022-03-14 02:06

转自


-- 创建库
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‘);

aaa chinese 67
aaa math 89
aaa physical 89
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;

姓名语文数学物理
aaa 67 89 89
bbb 67 75 89


 

热门排行

今日推荐

热门手游