原数据:
idcodenamevalue
-----------------------------
12014000A10
22014000B9
32014001C100
42014002D4
52014002E5
62014003F9
72014003G10
期望结果:
codename1value1name2value2
-----------------------------------------------
2014000A10B9
2014001C100nullnull
2014002D4E5
2014003F9G10
注意:同1个ID最多只2条记录,会出现相同value。
CREATE TABLE # (ID INT, code INT, NAME CHAR(1), VALUE VARCHAR(10)) INSERT INTO # VALUES (1,2014000,'A','10'), (2,2014000,'B','9'), (3,2014001,'C','100'), (4,2014002,'D','4'), (5,2014002,'E','5'), (6,2014003,'F','9'), (7,2014003,'G','10') SELECT code,MIN(name) AS name1,MIN(CAST(REPLACE(value,' ','') AS INT)) ASvalue1, CASE COUNT(ID) WHEN 1 THEN NULL ELSE MAX(name) END ASname2, CASE COUNT(ID) WHEN 1 THEN NULL ELSE MAX(CAST(REPLACE(value,' ','') AS INT)) END ASvalue2 FROM # GROUP BY code
MYSQL多行合并成一行多列
免责声明:文章转载自《MYSQL多行合并成一行多列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇Maven学习一:用Maven创建Java ProjectRedis:主从复制下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=