Microsoft Access 資料庫引擎的 SQL 通常符合 ANSI-89 第一級標準。 然而,某些 ANSI SQL 功能並未實作於 Microsoft Access SQL 中。 此外,Microsoft Access SQL 包含保留字及 ANSI SQL 不支援的功能。
主要差異
Microsoft Access SQL 與 ANSI SQL 各自擁有不同的保留字與資料型態。 使用 Microsoft OLE DB Provider,則有額外的保留字。
Between... 的規則不同。 以及 construct,其語法如下:
expr1 [非] 在 value1 和 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 功能:
- 差異的聚合函數參考。 例如,Microsoft Access SQL 不允許 SUM (DISTINCT 欄位名稱) 。
- LIMIT TO nn ROWS 子句用於限制查詢回傳的列數。 你只能用 WHERE 子句來限制查詢的範圍。