sql - 试图了解sql查询中的 "except all"

标签 sql intersect set-intersection set-difference set-operations

我遇到了这个示例,但我不明白它的含义。

(SELECT drinker FROM Frequents)
     EXCEPT ALL
(SELECT drinker FROM Likes);

关系:常客(饮料,酒吧),喜欢(饮料,啤酒)

在这种情况下,ALL会做什么?结果与下面的查询有何不同?
(SELECT drinker FROM Frequents)
     EXCEPT
(SELECT drinker FROM Likes);

最佳答案

SQL EXCEPT运算符采用一个查询的不同行,并返回未出现在第二个结果集中的行。 EXCEPT ALL运算符不会删除重复项。出于行消除和重复删除的目的,EXCEPT运算符不区分NULL。

EXCEPT ALL会返回第一个表中没有的所有记录,而第二个表中不存在所有记录,而将重复记录保留原样。不幸的是,SQL Server不支持该运算符。

关于sql - 试图了解sql查询中的 "except all",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432720/

相关文章:

python - Python 中的成对集交集

mongodb - mongodb中服务器端设置交集

sql - LINQ 翻译没有给出与我的 SQL 查询相同的结果

javascript - Node.js API 与 express 和 mysql - 仅在设置、等于和类似组合时应用搜索参数

sql - 如何在两个 SELECT 集之间进行订阅?

java - 使用矩形时的碰撞检测

c# - 从两个列表 C# 中获取具有索引的公共(public)元素

arrays - 找到与一组数组相交的最小数组

php - 如果 IN 子句在 Mysql 中为空,则给出所有行

php - 如何操作多维数组