建表、新增資料
create table `test_tb_grade` (
`id` int(10) not null auto_increment,
`user_name` varchar(20) default null,
`course` varchar(20) default null,
`score` float default '0',
primary key (`id`)
) engine=innodb auto_increment=1 default charset=utf8;
insert into test_tb_grade(user_name, course, score) values
("張三", "數學", 34),
("張三", "語文", 58),
("張三", "英語", 58),
("李四", "數學", 45),
("李四", "語文", 87),
("李四", "英語", 45),
("王五", "數學", 76),
("王五", "語文", 34),
("王五", "英語", 89);
行轉列sql:
select user_name ,
max(case course when '數學' then score else 0 end ) 數學,
max(case course when '語文' then score else 0 end ) 語文,
max(case course when '英語' then score else 0 end ) 英語
列轉行sql:
select user_name, '語文' course , cn_score as score from test_tb_grade2
union select user_name, '數學' course, math_score as score from test_tb_grade2
union select user_name, '英語' course, en_score as score from test_tb_grade2
order by user_name,course;
Mysql 行轉列 列轉行
create table test tb grade id int 10 not null auto increment,user name varchar 20 default null,course varchar 20 default null,score float default 0 pr...
MySQL行轉列 列轉行
max case course when 數學 then score else 0 end 數學,max case course when 語文 then score else 0 end 語文,max case course when 英語 then score else 0 end 英語 fro...
MySQL 行轉列 列轉行
以下內容包括 行轉列 sql 執行效果展示 列轉行 sql 執行效果展示 總結 附上的建表語句 一 行轉列 廢話不多說,先上sql 兩種方式 行轉列 方法 select id,name,group concat case when subject 語文 then score end separato...