今天学习了下 PostgreSQL 有关结果集的合并方法, 主要包括 Uinon, Intersect,Except 三种方式, 以下详细介绍。
语法
query1 UNION [ALL] query2
query1 INTERSECT [ALL] query2
query1 EXCEPT [ALL] query2
- UNION 表示返回结果集 query1 合并成 query2 ,如果不加 ALL 参数,则去重,否则不去。
- INTERSECT 表示返回结果集 query1 和 query2 的交集。
- EXCEPT 表示返回结果集在 query1 中但不在 query2, 即结果集 query1 减去 query2 的集合。
创建测试表
1 |
skytf=> /d test_41 |
Union 操作
1 |
skytf=> (select * From test_41) union ( select * from test_41); |
union all 操作
1 |
skytf=> (select * From test_41) union all ( select * from test_41); |
Intersect 操作
1 |
skytf=> (select * From test_41) INTERSECT ( select * from test_41 where id=1); |
Except 操作
1 |
skytf=> (select * From test_41) except ( select * from test_41 where id=1); |
注意事项
使用 “Uinon, Intersect,Except” 操作需要 query1, query2 满足一定条件,即 query1 和 query2 返回同样的字段,并且返回的字段类型一致。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/236407.html