掌握 MS Access UNION 查询中的排序结果
在 MS Access 中使用 UNION
查询组合来自多个表的数据在尝试对最终输出进行排序时通常会带来挑战。 像这样幼稚的方法:
<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
不会在 MS Access Jet 数据库引擎中产生所需的排序结果。
解决方案在于策略性地放置ORDER BY
子句。 不要将其应用于整个 UNION
查询,而是将其应用于联合内的每个单独的 SELECT
语句。 这是通过创建子查询来实现的:
<code class="language-sql">SELECT * FROM ( SELECT table1.field1 FROM table1 ORDER BY table1.field1 ) AS DUMMY_ALIAS1 UNION ALL SELECT * FROM ( SELECT table2.field1 FROM table2 ORDER BY table2.field1 ) AS DUMMY_ALIAS2</code>
此修改后的查询使用两个子查询,每个子查询都有自己的 ORDER BY
子句,确保每个数据集在 与 组合之前 UNION ALL
独立排序。 AS DUMMY_ALIAS1
和 AS DUMMY_ALIAS2
子句为子查询提供别名,这是此方法在 MS Access 中正确运行所必需的。 然后,生成的并集会显示合并、排序的数据。 请注意 UNION ALL
的使用,它包括所有行,与删除重复项的 UNION
不同。
以上是如何以编程方式对 MS Access 中 UNION 查询的结果进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!