Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (E-O)

 

INTERSECT 子句

计算两个或多个查询的结果集的交集。

语法
[ 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 子句   此子句用于指定执行语句时的提示。支持以下提示:

    • MATERIALIZED VIEW OPTIMIZATION option-value
    • FORCE OPTIMIZATION
    • option-name = option-value

    有关这些选项的说明,请参见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