Microsoft Access 資料庫引擎 SQL 通常符合 ANSI -89 層級 1 的規範。 不過,某些 ANSI SQL 功能不會在 Microsoft Access SQL 中實作。 此外,Microsoft Access SQL 也包含 ANSI SQL 不支援的保留字和功能。
主要差異
-
Microsoft Access SQL 和 ANSI SQL 各自有不同的保留字和數據類型。 使用 Microsoft OLE DB 提供者,還有其他保留字。
-
將不同的規則套用至 Between ...以及 具有下列語法的建構:
expr1 [NOT] Between value1 And value2
在 Microsoft Access SQL 中, 值 1 可能大於 值 2;在 ANSI SQL 中, value1 必須等於或小於 value2。
-
Microsoft Access SQL 同時支援 ANSI SQL 通配符和 Microsoft Access 特定 萬用字元 以搭配 Like 運算子使用。 ANSI 和 Microsoft Access 通配符的使用互斥。 您必須使用一組或另一組,且無法混合使用。 ANSI SQL 通配符只有在使用 Microsoft Access 資料庫引擎和 Microsoft Access OLE DB 提供者時才能使用。 如果您嘗試透過 Access 或 DAO 使用 ANSI SQL 通配符,則這些通配符會解譯為常值。
相符字元
Microsoft Access SQL
ANSI SQL
任何單一字元
?
_ (底線)
零個或更多個字元
*
%
-
Microsoft Access SQL 的限制通常較低。 例如,它允許對表達式進行分組和排序。
-
Microsoft Access SQL 支援更強大的表達式。
Microsoft Access SQL 的增強功能
Microsoft Access SQL 提供下列增強功能:
TRANSFORM 語句,提供交叉表查詢的支援。
-
其他 SQL 匯總函數,例如 StDev 和 VarP。
定義參數查詢的PARAMETERS宣告。
Microsoft Access SQL 不支援的 ANSI SQL 功能
Microsoft Access SQL 不支援下列 ANSI SQL 功能:
-
DISTINCT 匯總函數參照。 例如,Microsoft Access SQL 不允許 SUM (DISTINCT 欄名) 。
-
用來限制查詢傳回之列數的 LIMIT TO nn ROWS 子句。 您只能使用 WHERE 子句 來限制查詢的範圍。