mysql 多行合併操作

本文轉自

https://blog.csdn.net/rainyspring4540/article/details/50231435/

我的個人理解:mysql 行變列(多行變成一行/多行合併成一行/多行合併成多列/合併行),我覺得這都是一個意思

數據庫結構如圖:

而我想讓同一個人的不同成績變成此人在這一行不同列上顯示出來,此時分爲2中展現:

第一種展現如圖----【多行變一列】(合併後的數據在同一列上):

sql如下:

select name ,group_concat(sore Separator ';') as score from stu group by name 
第二種展現如圖----【多行變多列】(合併後的數據在不同列上):


sql如下:

SELECT name ,
MAX(CASE type WHEN '數學' THEN score ELSE 0 END ) math,
MAX(CASE type WHEN '英語' THEN score ELSE 0 END ) English ,
MAX(CASE type WHEN '語文' THEN score ELSE 0 END ) Chinese 
FROM stu  
GROUP BY name
-----------------------------------------------------------------------------------------------------可愛的分割線----------------------------------------------------------------------------------------------------
當然,在第一種情況中(顯示在一列),也有些其他的類似形式:

形式一:

sql如下:

select name ,group_concat(type,'分數爲:',score  Separator '; ') as score from stu group by name 

呵呵,當然 如果你很熟悉group_concat和concat的用法,你也做出如下形式:


其sql如下:

select name ,concat(name ,'的分數爲[',group_concat(type,'分數爲:',score  Separator '; '),']') as score from stu group by name 

--------------------- 
作者:放學後的泡泡 
來源:CSDN 
原文:https://blog.csdn.net/rainyspring4540/article/details/50231435?utm_source=copy 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章