sql except用法

EXCEPT 从两个表中返回不同的数据。

真实故事:2 008 SQL 标准定义。
数字:A = {1 ,2 ,3 },B = {3 ,4 ,5 },A 除 B = {1 ,2 }。

这就是危险:不要随意使用数学公式。
实用提醒:EXCEPT是集合运算,不是简单的加减法。

SQL 查找两表中不同的数据

结论:三种方法都能实现相同的功能,即查找A表中存在而B表中没有的姓名记录数。

方法一:推荐,通过公共表表达式(CTE)和NOT EXISTS实现,简单有效。

方法二:在SELECT语句中使用EXCEPT运算符直接查找仅在A表中存在的Name记录。

方法三:使用LEFT JOIN结合IS NULL条件查找B表中不存在的Name记录。

吐槽:方法三的LEFT JOIN效率可能不如方法一和方法二,因为LEFT JOIN会产生大量的中间结果集。