以下是其中比较常见的几种方法: 使用GROUP_CONCAT函数 可以使用GROUP_CONCAT函数将多行数据合并为一行,并以逗号或其他分隔符进行分隔。通过SELECT语句和GROUP BY子句,可以将数据行转换为列。具体语法如下
以下是其中比较常见的几种方法:
SELECT id, GROUP_CONCAT(CASE WHEN status = 'A' THEN value ELSE NULL END) AS 'statusA', GROUP_CONCAT(CASE WHEN status = 'B' THEN value ELSE NULL END) AS 'statusB', GROUP_CONCAT(CASE WHEN status = 'C' THEN value ELSE NULL END) AS 'statusC'FROM your_tableGROUP BY id;
其中,id表示非透视列,status表示需要转换为列的字段,value表示需要被转换的数据。
SELECT id, (SELECT value FROM your_table WHERE id=t.id AND status='A') AS 'statusA', (SELECT value FROM your_table WHERE id=t.id AND status='B') AS 'statusB', (SELECT value FROM your_table WHERE id=t.id AND status='C') AS 'statusC'FROM (SELECT DISTINCT id FROM your_table) AS t;
其中,id表示非透视列,status表示需要转换为列的字段,value表示需要被转换的数据。
CREATE TEMPORARY TABLE temp_tableSELECT id, MAX(CASE WHEN status = 'A' THEN value ELSE NULL END) AS 'statusA', MAX(CASE WHEN status = 'B' THEN value ELSE NULL END) AS 'statusB', MAX(CASE WHEN status = 'C' THEN value ELSE NULL END) AS 'statusC'FROM your_tableGROUP BY id;SELECT * FROM temp_table;
以上语句将行数据转换为列数据,并将结果存储在中间表temp_table中。使用SELECT语句从临时表中读取数据即可。
来源地址:https://blog.csdn.net/zhangzlyuyx/article/details/130705783
--结束END--
本文标题: mysql 行转列
本文链接: https://www.lsjlt.com/news/376628.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0