八月 30, 2023
摘要:在本教程中,您将学习如何使用 PostgreSQL 的EXCEPT
运算符,返回第一个查询中未出现在第二个查询的输出中的行。
目录
PostgreSQL EXCEPT 运算符简介
与 UNION 和 INTERSECT 运算符类似,EXCEPT
运算符通过比较两个或多个查询的结果集来返回行。
EXCEPT
运算符返回第一个(左)查询中不在第二个(右)查询的输出中的不同行。
下面说明了EXCEPT
运算符的语法。
SELECT select_list
FROM A
EXCEPT
SELECT select_list
FROM B;
EXCEPT
涉及到的查询需要遵循以下规则:
- 两个查询中的列数及其顺序必须相同。
- 各列的数据类型必须兼容。
下面的维恩图说明了EXCEPT
运算符:
PostgreSQL EXCEPT 运算符示例
我们将使用 UNION 教程中创建的top_rated_films
和most_popular_films
表:
top_rated_films
表:
most_popular_films
表:
以下语句使用EXCEPT
运算符查找评分最高但不受欢迎的电影:
SELECT * FROM top_rated_films
EXCEPT
SELECT * FROM most_popular_films;
以下语句使用查询中的ORDER BY
子句对EXCEPT
运算符返回的结果集进行排序:
SELECT * FROM top_rated_films
EXCEPT
SELECT * FROM most_popular_films
ORDER BY title;
请注意,我们将 ORDER BY 子句放在语句末尾,以按标题对电影进行排序。
概括
- 使用 PostgreSQL 的
EXCEPT
运算符获取第一个查询中未出现在第二个查询的结果集中的行。