SQLServer INTERSECT
在SQLServer中,INTERSECT运算符用于获取两个SELECT语句或数据集之间的公用记录。如果一条记录存在于一个查询中,而另一个查询中不存在,则从INTERSECT结果中将其省略。
语法:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
INTERSECT
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
参数说明
expression1,expression2,... expression_n: 表达式指定要在两个SELECT语句之间进行比较的列或计算。每个SELECT语句中不必具有相同的字段,但是两个表中的对应列必须是相似的数据类型。
表: : 它指定要从中检索记录的表。在FROM子句中必须至少列出一个表。
WHERE条件: 这是可选条件。它指定了选择记录所必须满足的条件。
图像表示:
注意: 重叠的蓝色字段指定相交数据。
相交操作的必要条件
两个SELECT语句中的表达式数量必须相同。
每个SELECT语句中的对应列必须具有相似的数据类型。
INTERSECT运算符仅获取SELECT语句的公共记录。
具有单个表达式的INTERSECT运算符
示例:
SELECT name
FROM [lidihuo].[dbo].[Employees]
INTERSECT
SELECT name
FROM [lidihuo].[dbo].[Employee2];
输出:
具有单个表达式的INTERSECT运算符
SELECT id, name, salary
FROM [lidihuo].[dbo].[Employees]
WHERE salary >= 15000
INTERSECT
SELECT id, name, salary
FROM [lidihuo].[dbo].[Employee2]
输出:
它显示为空白,因为它们之间没有什么共同之处查询。