计算两个或多个查询的结果集的交集。
[ WITH temporary-views ] query-block INTERSECT [ ALL | DISTINCT ] query-block [ ORDER BY [ integer | select-list-expression-name ] [ ASC | DESC ], ... ] [ FOR XML xml-mode ] [ OPTION( query-hint, ... ) ]
query-block:请参见SQL 语法中的常见元素
query-hint : MATERIALIZED VIEW OPTIMIZATION option-value | FORCE OPTIMIZATION | option-name = option-value
option-name : identifier
option-value : hostvar (indicator allowed), string, identifier, or number
OPTION 子句 此子句用于指定执行语句时的提示。支持以下提示:
有关这些选项的说明,请参见SELECT 语句的 OPTIONS 子句。
通过使用 INTERSECT 或 INTERSECT ALL,可以一次获得多个查询块的结果集的交集。INTERSECT DISTINCT 与 INTERSECT 相同。
每个查询块在选择列表中必须具有相同数目的项目。
INTERSECT 的结果和 INTERSECT ALL 相同,只是在使用 INTERSECT 时,重复的行在计算结果集的交集之前已被排除。
如果两个选择列表中的相应项具有不同的数据类型,则 SQL Anywhere 为结果中的相应列选择数据类型,并自动相应地转换各 query-block 中的列。UNION 的第一个 query-block 用于确定与 ORDER BY 子句匹配的名称。
显示的列名与为第一个 query-block 显示的列名相同。另一种自定义结果集列名的方法是在 query-block 上使用 WITH 子句。
必须具有对各 query-block 的 SELECT 权限。
无。
SQL/2003 特性 F302。
有关 INTERSECT 用法的示例,请参见集合运算符和 NULL。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |