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

能否使用单条SELECT SQL语句将第一张表转置为目标第二张表

你的行转列实现思路是正确的,仅需修正两处语法错误即可实现预期的转置效果:

  • 第7行axle_dist_5字段后多了多余的逗号,SELECT语句的最后一个查询字段后不允许加逗号
  • GROUP子句缺失关键字BY,正确写法为GROUP BY
    此外,desc属于SQL保留关键字,作为字段名使用时建议用反引号包裹,避免触发语法报错。

修正后的正确SQL语句如下:

SELECT 
  table1.licence_no, 
  table1.plateno, 
  table1.`desc`,      
  MAX(CASE WHEN axle_no = 1 THEN axle_dist ELSE NULL END) AS axle_dist_1,
  MAX(CASE WHEN axle_no = 2 THEN axle_dist ELSE NULL END) AS axle_dist_2,
  MAX(CASE WHEN axle_no = 3 THEN axle_dist ELSE NULL END) AS axle_dist_3,
  MAX(CASE WHEN axle_no = 4 THEN axle_dist ELSE NULL END) AS axle_dist_4,
  MAX(CASE WHEN axle_no = 5 THEN axle_dist ELSE NULL END) AS axle_dist_5
FROM table1
GROUP BY table1.licence_no, table1.plateno, table1.`desc`;

如果业务场景中轴数不固定(比如可能出现超过5轴的情况),需要用动态SQL拼接才能实现通用转置,这种场景下无法通过单条静态SELECT语句完成需求。

表结构示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:36:03