在本教程中,您将学习如何使用Oracle INTERSECT运算符来比较两个查询,并返回由两者相交的行。
Oracle INTERSECT运算符介绍
Oracle INTERSECT运算符比较两个查询的结果,并返回两个查询输出的不同行。
以下语句显示了INTERSECT运算符的语法:
SELECT
    column_list_1
FROM
    T1
INTERSECT 
SELECT
    column_list_2
FROM
    T2;
与UNION运算符相似,使用INTERSECT运算符时必须遵循以下规则:
- 两个查询中列的数量和顺序必须相同。
- 相应列的数据类型必须处于相同的数据类型组中,例如数字或字符。
Oracle INTERSECT说明图
假设有两个查询返回T1和T2表中的结果集。
- T1结果集包括:- 1,- 2,- 3行。
- T2结果集包括:- 2,- 3,- 4行。
T1和T2的相交结果返回是2和3。因为这些是由两个查询输出的不同值。
下图说明了T1和T2的交集:

上图显示了INTERSECT返回两个圆(或集合)的交集。
Oracle INTERSECT示例
请参阅示例数据库中的以下contacts和employees表的ER结构图。

以下语句使用INTERSECT运算符来获取在contacts和employees表中都存在人员的姓氏(last_name):
SELECT
    last_name
FROM
    contacts
INTERSECT 
SELECT
    last_name
FROM
    employees
ORDER BY
    last_name;
执行上面示例代码,得到以下结果 -

请注意,在最后的查询中放置了
ORDER BY子句,以对由INTERSECT运算符返回的结果集进行排序。
在本教程中,您学习了如何使用Oracle INTERSECT运算符来比较两个查询,并返回两个查询输出的不同行。
						上一篇:
								Oracle Union运算符
												下一篇:
								Oracle Minus运算符
												
						
						
					
					
					