oracle之minus(取差集)、intersect(取交集)
Oracle数据库中的MINUS和INTERSECT是用于集合操作的两个关键字。
MINUS操作符用于获得两个SELECT语句的差集,返回结果包括在第一个SELECT语句中出现但不在第二个SELECT语句中出现的行。例如,以下查询将返回在表A中出现但不在表B中出现的所有行:
SELECT * FROM A
MINUS
SELECT * FROM B
INTERSECT操作符用于获得两个SELECT语句的交集,返回结果包括同时出现在第一个SELECT语句和第二个SELECT语句中的行。例如,以下查询将返回既在表A中又在表B中出现的所有行:
SELECT * FROM A
INTERSECT
SELECT * FROM B
需要注意的是,MINUS和INTERSECT操作符在比较时会斟酌结果集的所有列。如果要进行集合操作的两个查询的列数不匹配,会致使语法毛病。因此,在使用MINUS和INTERSECT操作符之前,需要确保两个SELECT语句的结果集具有相同的列数和数据类型。
TOP