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);
select user_name ,
max(case course when
'數學'
then score else
0end ) 數學,
max(case course when
'語文'
then score else
0end ) 語文,
max(case course when
'英語'
then score else
0end ) 英語
from test_tb_grade
group
by user_name;
create
table
`test_tb_grade2` (
`id`
int(10) not
null auto_increment,
`user_name`
varchar(20) default
null,
`cn_score`
float
default
null,
`math_score`
float
default
null,
`en_score`
float
default
'0',
primary
key (`id`)
) engine=innodb auto_increment=1
default charset=utf8;
insert
into test_tb_grade2(user_name, cn_score, math_score, en_score) values
("張三", 34, 58, 58),
("李四", 45, 87, 45),
("王五", 76, 34, 89);
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行轉列 列轉行
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...
mysql列邊行 mysql 行轉列 列轉行
group concat 函式說明 手冊上說明 該函式返回帶有來自乙個組的連線的非null值的字串結果 通俗點理解,其實是這樣的 group concat 會計算哪些行屬於同一組,將屬於同一組的列顯示出來。要返回哪些列,由函式引數 就是欄位名 決定。分組必須有個標準,就是根據group by指定的列...