@(躍遷之路)專欄spa
- 技術的精進不能只是簡單的刷題,而應該是不斷的「刻意」練習
- 該系列改版後正式歸入【躍遷之路】專欄,持續更新
題目描述code
DROP TABLE IF EXISTS test1
;
CREATE TABLE test1
(id
int(11) NOT NULL AUTO_INCREMENT,username
varchar(20) NOT NULL,course
varchar(20) NOT NULL,score
bigint(20) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;blog
INSERT INTO test1
VALUES ('1', '張三', '數學', '34');
INSERT INTO test1
VALUES ('2', '張三', '語文', '44');
INSERT INTO test1
VALUES ('3', '張三', '英語', '54');
INSERT INTO test1
VALUES ('4', '李四', '數學', '134');
INSERT INTO test1
VALUES ('5', '李四', '語文', '144');
INSERT INTO test1
VALUES ('6', '李四', '英語', '154');
INSERT INTO test1
VALUES ('7', '王五', '數學', '234');
INSERT INTO test1
VALUES ('8', '王五', '語文', '244');
INSERT INTO test1
VALUES ('9', '王五', '英語', '254');rem
查出如下結果數學
法1it
SELECT A.username,A.score as '數學',B.score as '語文',C.score as '英語' FROM (select username,course,score from test1 where course = '數學') A, (select username,course,score from test1 where course = '語文') B, (select username,course,score from test1 where course = '英語') C WHERE A.username = B.username and B.username = C.username
法2【推薦】class
select username,sum(case course when '數學' then score else 0 end ) as '數學', sum(case course when '語文' then score else 0 end ) as '語文', sum(case course when '英語' then score else 0 end ) as '英語' FROM test1 group by username