首页 > 解决方案 > SQL标准中是否存在INTERSECT运算符?

问题描述

SQL标准中是否存在INTERSECT运算符?如果存在,它是可选的运算符吗?

请留下一个可靠的来源。

标签: sqlintersectansi-sql

解决方案


你的教授要么错了,要么你误解了他们所说的。并非每个SQL实现都支持 INTERSECT,但它是标准。

我查看了 Jim Melton 和 Alan R. Simon (1993) 撰写的“了解新 SQL:完整指南”,其中涵盖了 SQL-92。

第 171 页说:

INTERSECT 和 EXCEPT 运算符

INTERSECT 返回两个表的交集中存在的所有行;也就是说,在两个表中。

SELECT * 
  FROM music_titles
INTERSECT
SELECT * 
  FROM discontinued_albums;

例如,前面的查询将返回所有已停止发行且已重新发行的专辑。

这是 Google 图书的链接,其中在搜索中突出显示了 INTERSECT 一词:https ://www.google.com/books/edition/Understanding_the_New_SQL/ZOOMSTZ4T_QC?bsq=intersect&gbpv=1

我还检查了我的 Peter Gulutzan 和 Trudy Pelzer (1999) 的“SQL-99 Complete,Really”副本。它还记录了 INTERSECT。


推荐阅读