Adaptive Server Enterprise 支持若干个对 GROUP BY 子句的扩展,而这些扩展在 Adaptive Server Anywhere 中是不受支持的。它们包括以下各项:
选择列表中未分组的列 Adaptive Server Enterprise 允许选择列表中的列名称不出现在 GROUP BY 子句中。例如,在 Adaptive Server Enterprise 中,以下语句是有效的:
SELECT name, unit_price FROM product GROUP BY name
而在 Adaptive Server Anywhere 中则不支持此语法。
嵌套的集合函数 以下查询将矢量集合嵌套在标量集合内,这种用法在 Adaptive Server Enterprise 中是有效的,但在 Adaptive Server Anywhere 中则无效:
SELECT MAX(AVG(unit_price)) FROM product GROUP BY name
GROUP BY 和 ALL Adaptive Server Anywhere 不支持在 GROUP BY 子句中使用 ALL。
不带 GROUP BY 的 HAVING Adaptive Server Anywhere 不支持没有 GROUP BY 子句的 HAVING,除非 SELECT 和 HAVING 子句中的所有表达式都是集合函数。例如,以下查询在 Adaptive Server Enterprise 中是有效的,但在 Adaptive Server Anywhere 中不支持该查询:
--unsupported syntax SELECT unit_price FROM product HAVING COUNT(*) > 8
不过,以下语句在 Adaptive Server Anywhere 中是有效的,因为函数 MAX 和 COUNT 都是集合函数:
SELECT MAX(unit_price) FROM product HAVING COUNT(*) > 8
HAVING 条件 Adaptive Server Enterprise 支持对 HAVING 的扩展,允许非集合函数不位于选择列表和 GROUP BY 子句中。在 Adaptive Server Anywhere 中只允许此类型的集合函数。
具有 ORDER BY 或 GROUP BY 的 DISTINCT Adaptive Server Enterprise 允许 ORDER BY 或 GROUP BY 子句中使用的列不出现在选择列表中,甚至在 SELECT DISTINCT 查询中也是如此。这可能导致在 SELECT DISTINCT 结果集中出现重复值。Adaptive Server Anywhere 不支持此用法。
UNION 中的列名称 Adaptive Server Enterprise 允许在联合查询的 ORDER BY 子句使用列。在 Adaptive Server Anywhere 中,ORDER BY 子句必须使用整数,以标记用来对结果进行排序的列。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。