PostgreSQL INTERSECT 用法与实例
本文介绍了在 PostgreSQL 中如何使用 INTERSECT
运算符计算两个结果集的交集。
在 PostgreSQL 中, INTERSECT
是一个集合运算符,它返回两个集合的交集。也就是说,它返回那些同时位于两个结果集中的行。
PostgreSQL INTERSECT 语法
要计算两个结果集的交集,请按照以下语法使用使用 INTERSECT
运算符:
SELECT_statement_1
INTERSECT
SELECT_statement_2
[ORDER BY ...];
或者您可以同时计算多个结果集的交集,如下:
SELECT_statement_1
INTERSECT
SELECT_statement_2
INTERSECT
SELECT_statement_3
INTERSECT
...
[ORDER BY ...];
这里:
SELECT_statement_N
都是个独立SELECT
语句。- 参与
INTERSECT
运算的所有的结果集应该具有相同的列,并且列的数据类型和顺序应该相同。 ORDER BY
子句用于对最终结果进行排序,它是可选的。
PostgreSQL INTERSECT 实例
在本示例中,我们将使用 generate_series()
函数用来生成结果集。
我们需要用到两个结果集,先看第一个结果集:
SELECT generate_series(1, 5);
generate_series
-----------------
1
2
3
4
5
再看一下第二个结果集:
SELECT generate_series(3, 6);
generate_series
-----------------
3
4
5
6
现在,我们对两个结果集进行 INTERSECT
运算:
SELECT generate_series(1, 5)
INTERSECT
SELECT generate_series(3, 6)
ORDER BY generate_series;
generate_series
-----------------
3
4
5
(3 rows)
从结果看出,INTERSECT
运算符返回了第一个集合和第二个集合的共有的行。
结论
在 PostgreSQL 中, INTERSECT
用来计算两个结果集的交集。