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

Access数据库中合并相似取值多列并转置为行的实现方法咨询

Access宽表转长表实现方案

Access无内置UNPIVOT功能,可通过联合查询实现字段拆行需求,操作如下:

  • 打开Access数据库,点击「创建」-「查询设计」,关闭弹出的表选择窗口后切换到SQL视图
  • 如果你需要新表生成和示例一致的独立自增UID,执行以下两步操作:
    1. 先手动创建空新表,字段设置如下:
      • UID:自动编号类型,设为主键
      • Name:文本类型
      • Field1:文本类型
    2. 在SQL视图输入以下语句,将原表名、新表名替换为你实际的表名后执行即可:
    INSERT INTO 新表名 (Name, Field1)
    SELECT t.Name, t.FieldValue FROM (
        SELECT Name, Field1 AS FieldValue FROM 原表名
        UNION ALL
        SELECT Name, Field2 AS FieldValue FROM 原表名
        UNION ALL
        SELECT Name, Field3 AS FieldValue FROM 原表名
    ) AS t
    -- 如果不需要test3的记录,取消注释下面的过滤条件
    -- WHERE t.Name <> 'test3'
    ORDER BY t.Name, t.FieldValue DESC;
    
  • 如果你不需要新的自增UID,保留原有UID即可,直接执行以下生成表查询语句即可:
SELECT UID, Name, Field1 AS NewField INTO 新表名 FROM 原表名
UNION ALL
SELECT UID, Name, Field2 AS NewField FROM 原表名
UNION ALL
SELECT UID, Name, Field3 AS NewField FROM 原表名
-- 过滤不需要的记录可取消注释下面的条件
-- WHERE Name <> 'test3'
ORDER BY Name, NewField DESC;

如果源表的Field1/2/3存在空值需要过滤,在每个子SELECT语句末尾加上对应字段的非空判断(例如WHERE Field1 IS NOT NULL)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:24:01