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

转自http://www.jb51.net/article/36497.htm


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

Full Textsunameobjectscore
Edit Delete aaa chinese 67
Edit Delete aaa math 89
Edit Delete aaa physical 89
Edit Delete bbb chinese 67
Edit Delete bbb math 75
Edit Delete 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;

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


 

posted @ 2014-11-05 15:43  Jeff.Gao  阅读(1286)  评论(0编辑  收藏  举报