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

SQL动态字段转列实现:如何输出指定DataEntry的行转列查询结果

解决方案

MySQL 原生不支持 PIVOT 关键字,你可以通过条件聚合的方式实现行转列需求,对应SQL语句如下:

SELECT 
    1 AS RowId,
    MAX(CASE WHEN field_name = 'field1' THEN field_value END) AS field1,
    MAX(CASE WHEN field_name = 'field2' THEN field_value END) AS field2,
    MAX(CASE WHEN field_name = 'field3' THEN field_value END) AS field3,
    MAX(CASE WHEN field_name = 'field4' THEN field_value END) AS field4
FROM entry_fields
WHERE data_entry_id = 1;

实现说明

  • 逻辑核心是CASE条件判断加聚合函数:每个CASE语句只会匹配对应字段名的取值,外层用MAX(也可以替换为MIN,因为同一条data_entry_id下每个字段名只会对应一条记录,聚合函数仅用于合并多行空值、输出单行结果)。
  • WHERE子句直接筛选你需要查询的data_entry_id=1的记录,如果你需要适配多个条目查询,可以把1 AS RowId替换为data_entry_id AS RowId,再调整WHERE条件即可。
  • 上述写法针对固定字段名的场景,如果你的字段是动态不固定的,可以使用动态SQL拼接语句实现,静态写法的查询性能和稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:24:03