返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

7.4. 组合查询

发布于 2019-09-30 03:06:04 字数 1154 浏览 887 评论 0 收藏 0

可以对两个查询的结果进行集合操作(并、交、差)。语法是:

query1 UNION [ALL] query2
query1 INTERSECT [ALL] query2
query1 EXCEPT [ALL] query2

query1query2 可以是讨论过的所有查询。集合操作也可以嵌套和级连,比如:

query1 UNION query2 UNION query3

它实际上等价于

(query1 UNION query2) UNION query3

UNIONquery2 的结果附加到 query1 的结果上(不过我们不能保证这就是这些行实际的返回顺序),并且像 DISTINCT 那样删除结果中所有重复的行(除非声明了 UNION ALL)。

INTERSECT 返回那些同时存在于 query1query2 结果中的行,除非声明了 INTERSECT ALL ,否则所有重复行都被删除。

EXCEPT 返回所有在 query1 结果中但是不在 query2 结果中的行(有时侯这叫做两个查询的)。除非声明了 EXCEPT ALL ,否则所有重复行都被删除。

为了能够计算两个查询的并、交、差,这两个查询必须是"并集兼容的",也就是它们都返回同样数量的列,并且对应的列有兼容的数据类型,就像节10.5里描述的那样。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文