You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MySQL将横向数据转换为纵向数据?

MySQL横向列转纵向行查询方案

假设你的表名为product_prices,可以通过UNION ALL将多列价格数据合并为纵向的结果集,具体SQL语句如下:

SELECT prod, price1 AS price FROM product_prices
UNION ALL
SELECT prod, price2 AS price FROM product_prices
UNION ALL
SELECT prod, price3 AS price FROM product_prices
ORDER BY prod, price;

关键说明:

  • 用UNION ALL而非UNION:前者不会对结果去重,性能更优,完全匹配当前需求(不需要剔除重复值)。
  • 每个子查询将对应价格列重命名为price,确保合并后列名统一。
  • 末尾的ORDER BY可以让结果按prod分组、price排序,和你期望的输出顺序一致。

如果后续新增类似价格列(如price4、price5),只需继续追加UNION ALL SELECT prod, priceN AS price FROM product_prices即可。

内容的提问来源于stack exchange,提问作者eniac05

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:17:01