如何在 Access 中对表的所有列进行 UNION ALL
Posted
技术标签:
【中文标题】如何在 Access 中对表的所有列进行 UNION ALL【英文标题】:How can I UNION ALL on all columns of a table in Access 【发布时间】:2016-09-27 19:14:45 【问题描述】:我有两个具有相同列数 (c.150) 的选择查询,我正在尝试将这两个查询合并:
SELECT *
FROM query1
UNION ALL
SELECT *
FROM query2
我收到错误“定义的字段过多”,但我知道 Access 可以处理 255 个字段?鉴于我不想在每个选择查询中写出每个字段名称,有没有一种实用的方法来实现这种联合?
【问题讨论】:
理论上 UNION ALL 不应该是这里的罪魁祸首。你能分别成功地启动你的 2 个查询吗? 如果您的字段数超出 Access 的处理能力,您可能需要将其拆分为多个 UNION 查询。 UNION 查询的所有部分计数:2 * 150 = 300。查看可能的重复项:***.com/questions/13846776/… SQL 代码异味:如果每个表有 120 多列,那么它们几乎肯定没有完全规范化,也就是你有设计缺陷。 【参考方案1】:正如 Parfait 在他的评论中提到的那样,这个错误是由于 Access 正在将我的每个表的列数计算到限制中而引起的。 150 + 150 > 255 => 定义的字段太多。查看类似问题here。
如果您没有太多数据,另一种方法是将一个写入表并将另一个附加到同一个表中。
【讨论】:
以上是关于如何在 Access 中对表的所有列进行 UNION ALL的主要内容,如果未能解决你的问题,请参考以下文章
使用 ASP.Net 在 SQL 中对表的列值求和时出现异常