📜  SQL Server相交运算符

📅  最后修改于: 2020-12-02 04:52:20             🧑  作者: Mango

SQL Server INTERSECT运算符

在SQL Server中,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子句中必须至少列出一个表。

条件:这是可选条件。它指定了选择记录必须满足的条件。

图像表示:


注意:重叠的蓝色字段指定相交数据。

INTERSECT操作的强制条件

  • 两个SELECT语句中的表达式数量必须相同。
  • 每个SELECT语句中的对应列必须具有相似的数据类型。
  • INTERSECT运算符仅获取SELECT语句的公共记录。

带有单个表达式的INTERSECT运算符

例:

SELECT name
FROM [javatpoint].[dbo].[Employees]
INTERSECT
SELECT name
FROM [javatpoint].[dbo].[Employee2]; 

输出:

带有单个表达式的INTERSECT运算符

SELECT id, name, salary
FROM [javatpoint].[dbo].[Employees]
WHERE salary >= 15000
INTERSECT
SELECT id, name, salary
FROM [javatpoint].[dbo].[Employee2]

输出:

它显示为空白,因为根据查询,它们之间没有什么共同之处。