在 Microsoft Access (Jet/ACE) 中執行沒有資料表的 UNION 查詢
Microsoft Access 利用 Jet/ACE 資料庫引擎,在嘗試無表格 UNION 查詢時遇到了獨特的障礙。 雖然沒有資料來源的簡單 SELECT
語句是可以接受的,但 UNION 查詢需要 FROM
子句,無論它是否引用任何特定欄位。
根本原因:
Jet/ACE引擎與其他資料庫系統不同;它要求至少一個表格或查詢作為 UNION 操作的輸入。實現此約束是為了透過建立到底層資料結構的連結來維護資料庫穩定性和資料完整性。
規避限制:
可以用多種方法來繞過此限制:
建立虛擬表:
FROM
子句中使用此表。 使用受限 SELECT 語句:
SELECT
或特定 TOP 1
子句的 WHERE
語句將結果集限制為單行。 SELECT
語句取代 UNION 查詢。 範例:
下面示範了一個利用虛擬表方法的功能範例:
<code class="language-sql">SELECT "Mike" AS FName FROM Dual UNION ALL SELECT "John" AS FName FROM Dual;</code>
這裡,「Dual」代表單行表。
需要注意的是,檢查約束是在 Jet 4 中引入的,旨在強制實施單行限制,並且僅與 ADO 執行相容。 DAO 缺乏創建檢查約束的能力,並且需要在查詢本身內進行明確限制。
以上是如何在 Microsoft Access (Jet/ACE) 中執行無表格 UNION 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!