掌握 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中文網其他相關文章!