摘要:在MySQL中,有時(shí)候需要將一行數(shù)據(jù)變成多列的形式進(jìn)行展示,本文將介紹兩種實(shí)現(xiàn)方法。
1. 使用CASE WHEN語句
使用CASE WHEN語句可以將一行數(shù)據(jù)轉(zhuǎn)換成多列,具體實(shí)現(xiàn)方法如下:
SELECT
id,
CASE WHEN type = 1 THEN value ELSE NULL END AS value1,
CASE WHEN type = 2 THEN value ELSE NULL END AS value2,
CASE WHEN type = 3 THEN value ELSE NULL END AS value3
FROMame;
其中,CASE WHEN語句的作用是判斷type的值,如果為1,則將value賦值給value1,如果為2,則將value賦值給value2,以此類推。
2. 使用GROUP BY語句
使用GROUP BY語句也可以將一行數(shù)據(jù)轉(zhuǎn)換成多列,具體實(shí)現(xiàn)方法如下:
SELECT
id,
MAX(CASE WHEN type = 1 THEN value ELSE NULL END) AS value1,
MAX(CASE WHEN type = 2 THEN value ELSE NULL END) AS value2,
MAX(CASE WHEN type = 3 THEN value ELSE NULL END) AS value3
FROMame
GROUP BY
id;
其中,GROUP BY語句的作用是將同一id的數(shù)據(jù)進(jìn)行合并,并將type為1的value賦值給value1,將type為2的value賦值給value2,以此類推。
總結(jié):以上兩種方法均可實(shí)現(xiàn)將一行數(shù)據(jù)變成多列的效果,使用時(shí)根據(jù)實(shí)際情況選擇合適的方法即可。