http://westlife063.blog.163.com/blog/static/129942096201052591210384/
Microsoft Jet 数据库引擎 SQL 和 ANSI SQL 的比较
Microsoft Jet 数据库引擎 SQL通常属于 ANSI-89 Level 1。然而,ANSI SQL 的某些功能在 Microsoft Jet SQL 中没有实现。随着 Microsoft Jet 4.X 版的发行,可以看出 Microsoft OLE DB Provider for Jet 使用了更多的 ANSI-92 SQL 语法。相反地,在 ANSI SQL 中也不支持 Microsoft Jet SQL 所包含的某些保留字和性能。
主要的差异
- Microsoft Jet SQL 和 ANSI SQL 都有不同的保留字和数据类型。欲知更多信息请看 Microsoft Jet 数据库引擎 SQL 保留字s和等效的 ANSI SQL数据类型。将 Microsoft OLE DB Provider for Jet 与 Jet 4.X 协同使用,会有额外的保留字。
- Between...And 的构造应用了不同的规则,语法如下:
expr1 [NOT] Between value1 And value2
在 Microsoft Jet SQL 中,value1 可以大于 value2; 而在 ANSI SQL 中,value1 则必须等于或小于 value2。
- Microsoft Jet SQL支持 ANSI SQL 通配符 和 Microsoft Jet-specific 通配符与 Like 运算符一起使用。 ANSI或 Microsoft Jet 通配符 是互相排斥的。你只能用其中一组,不能同时使用。仅当使用 Jet 4.X 和 Microsoft OLE DB Provider for Jet 时,ANSI SQL 通配符才可用。若尝试通过 Microsoft Access 或 DAO 使用 ANSI SQL 通配符,则会将其解释为原义字符。当使用 Microsoft OLE DB Provider for Jet 和 Jet 4.X 时,情形恰好相反。
符合字符 Microsoft Jet SQL ANSI SQL 任何单一字符 ? _(下划线) 零个或多个字符 * %
- Microsoft Jet SQL 通常限制的比较少。例如,它允许在表达式中进行分组和排序。
- Microsoft Jet SQL 提供了更强有力的表达式。
Microsoft Jet SQL 的加强功能
Microsoft Jet SQL 提供了下列加强功能:
- 附加合计函数s, 如 StDev 和 VarP
PARAMETERS说明语句定义参数查询
Microsoft Jet SQL 不支持的 ANSI SQL 功能
Microsoft Jet SQL 不支持下列 ANSI SQL 的功能:
- DISTINCT 合计函数引用。例如,Microsoft Jet SQL 不允许 SUM(DISTINCT 字段名)。
- 用来限制查询返回行数的 LIMIT TO nn ROWS 子句。你可以只用 WHERE 子句限定查询的范围。
请参阅
等效的 ANSI SQL 数据类型 | Microsoft Jet 数据库引擎 SQL 的保留字 |
Like 运算符 (Microsoft Jet SQL) | SQL 合计函数(SQL) |
Microsoft Jet 数据库引擎 SQL 的数据类型 | 在字符串比较中使用通配符 |