返回位于 EXCEPT 之前的查询块结果集中的行,这些行在 EXCEPT 之后的查询块结果集中不存在。
[ WITH temporary-views ] main-query-block EXCEPT [ ALL | DISTINCT ] except-query-block [ ORDER BY [ integer | select-list-expression-name ] [ ASC | DESC ], ... ] [ FOR XML xml-mode ] [ OPTION( query-hint, ... ) ]
query-hint : MATERIALIZED VIEW OPTIMIZATION option-value | FORCE OPTIMIZATION | option-name = option-value
main-query-block:查询块。请参见SQL 语法中的常见元素。
except-query-block:查询块。请参见SQL 语法中的常见元素。
option-name : identifier
option-value : hostvar (indicator allowed), string, identifier, or number
main-query-block 要将一个或多个查询块与其进行比较的查询块。
except-query-block 位于 EXCEPT 子句右侧的查询块。except-query-block 的结果将与 main-query-block 的结果进行比较,以标识仅存在于 main-query-block 中的行。
EXCEPT 子句 如果 main-query-block 中存在与 except-query-block 中的行不匹配的重复行,则在指定了 EXCEPT ALL 的情况下重复行会出现在结果中。要消除结果中的重复行,则指定 EXCEPT 或 EXCEPT DISTINCT。
OPTION 子句 此子句用于指定执行语句时的提示。支持以下提示:
有关这些选项的说明,请参见SELECT 语句的 OPTIONS 子句。
使用 EXCEPT 子句将 main-query-block 的结果与一个或多个 except-query-block 的结果进行比较,然后返回仅存在于 main-query-block 中的行。如果希望在结果中 main-query-block 的重复行不作为重复行出现,请指定 EXCEPT 或 EXCEPT DISTINCT。否则,请指定 EXCEPT ALL。
EXCEPT 与 EXCEPT DISTINCT 相同。
各个 query-block 在选择列表中必须具有相同数目的项目。
EXCEPT ALL 的结果集中的行数等于各个查询的结果集行数之间的差。
EXCEPT 的结果和 EXCEPT ALL 相同,只是在使用 EXCEPT 时,重复的行在计算结果集间的差异之前已被排除。
如果两个选择列表中的相应项具有不同的数据类型,则 SQL Anywhere 为结果中的相应列选择数据类型,并自动相应地转换各 query-block 中的列。UNION 的第一个查询说明用于确定要与 ORDER BY 子句匹配的名称。
显示的列名与为第一个 query-block 显示的列名相同。另一种自定义结果集列名的方法是在 query-block 上使用 WITH 子句。
必须具有对各 query-block 的 SELECT 权限。
无
SQL/2003 EXCEPT DISTINCT 是核心特性。EXCEPT ALL 是特性 F304。
有关 EXCEPT 用法的示例,请参见集合运算符和 NULL。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |