EXCEPT 返回两个结果集的差(即从左查询中返回右查询没有找到的所有非重复值)。
INTERSECT 返回 两个结果集的交集(即两个查询都返回的所有非重复值)。
UNION返回两个结果集的并集。
UNION,EXCEPT, INTERSECT关键字用于对集合的查询,它们的作用分别为:
UNION:合并两个或多个SELECT语句的结果集,并把重复结果去除;
UNIONALL:合并两个或多个SELECT语句的结果集,不去除重复结果;
EXCEPT:查询包含在A语句的结果集中但不包含在B语句的结果集中的结果;
语法:
{ (<SQL-查询语句1>) }
{ EXCEPT | INTERSECT }
{ (<SQL-查询语句2> )}
限制条件
- (1)所有查询中的列数和列的顺序必须相同。
- (2)比较的两个查询结果集中的列数据类型可以不同但必须兼容。
- (3)比较的两个查询结果集中不能包含不可比较的数据类型(xml、text、ntext、image 或非二进制 CLR 用户定义类型)的列。
- (4)返回的结果集的列名与操作数左侧的查询返回的列名相同。ORDER BY 子句中的列名或别名必须引用左侧查询返回的列名。
- (5)不能与 COMPUTE 和 COMPUTE BY 子句一起使用。
- (6)通过比较行来确定非重复值时,两个 NULL 值被视为相等。(EXCEPT 或 INTERSECT 返回的结果集中的任何列的为空性与操作数左侧的查询返回的对应列的为空性相同。)
与表达式中的其他运算符一起使用时的执行顺序
- 1、括号中的表达式
- 2、INTERSECT 操作数
- 3、基于在表达式中的位置从左到右求值的 EXCEPT 和 UNION
如果 EXCEPT 或 INTERSECT 用于比较两个以上的查询集,则数据类型转换是通过一次比较两个查询来确定的,并遵循前面提到的表达式求值规则。
举例:
tableA tableB
NULL |
NULL |
NULL |
2 |
1 |
3 |
1 |
4 |
2 |
5 |
3 |
5 |
4 |
|
5 |
|
A:(SELECT * FROM TableA) EXCEPT (SELECT * FROM TableB)
结果: 1
(1 row(s) affected)
B: SELECT * FROM TableA INTERSECT SELECT * FROM TableB
结果:2
3
4
5
(4 row(s) affected)
分享到:
相关推荐
"Merge Join" Step就是其中之一,它允许用户实现类似SQL中的各种类型关联查询,包括INNER JOIN、LEFT JOIN、RIGHT JOIN以及FULL JOIN。 INNER JOIN是SQL中的一种基本联接类型,它返回两个表中存在匹配的记录。在...
sql多表关联查询,三表关联查询
在本文中,我们将讨论 Linq to sql 的多表关联和动态条件查询这两个重要的知识点。 多表关联是指在一个查询中关联多个表,以便从多个表中提取数据。这在实际开发中非常常见,例如,我们需要从多个表中提取数据以...
从给定的文件标题“SQL复杂关联查询练习”和描述“可以帮助初学者更好地了解SQL及其练习”,我们可以看出,本文档旨在通过一系列复杂的SQL查询示例,帮助初学者深入理解SQL语言,尤其是关于如何进行表之间的关联查询...
通过学习和分析这个项目,开发者可以了解到如何在实际项目中应用MyBatis的动态SQL和关联查询,提升数据库操作的灵活性和效率。同时,这也是一次很好的实践机会,加深对Java EE开发流程和MyBatis框架的理解。
Oracle SQL 语句多表关联查询是数据库管理系统中的一种常见查询方式,通过了解字符串和数字的比较、分组查询、HAVING 子句、查询顺序、Oracle 中的伪列、子查询和表连接等知识点,可以帮助我们更好地编写 SQL 语句,...
在SQL Server数据库中关联并操作MySQL数据库是一种跨数据库平台的数据集成技术,这使得用户能够从SQL Server环境中查询、更新或管理MySQL中的数据。本篇文档将深入探讨这一主题,包括如何建立连接、配置ODBC驱动以及...
根据提供的标题、描述、...以上就是从给定的信息中总结出的经典SQL关联查询的核心知识点。这些知识点不仅适用于这个具体的例子,也广泛应用于各种SQL查询场景中。熟练掌握这些技巧对于高效地处理数据库查询至关重要。
SQL语言作为数据库的标准操作语言,提供了多种方式来进行表间的关联查询,其中最为常见的是内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及全连接(FULL OUTER JOIN)。本文将深入浅出地介绍...
在SQL语言中,多表关联查询是数据查询的重要部分,特别是在处理复杂的数据关系时。本讲主要涵盖了四个关键知识点:等值连接(Equijoin)、非等值连接(Non-equijoin)、外连接(Outer join)以及自连接(Self join)...
使用右键菜单实现SQL关联查询,通过本表和外接表的两个字段关联,实现关联后,对两个表进行属性查找。
- **左连接(left join)**: 左连接是多表关联中最常用的一种类型,它可以确保主表中的所有记录都会被包含在结果集中。即使次表中没有匹配的记录,也会显示为NULL。 - **子查询**: 在`left join`后跟了一个子查询,...
在SQL(Structured Query Language)中,关联多个表是常见的数据查询操作,特别是在处理大型数据库时。标题中的"一条sql语句关联八个表"涉及到的就是这种复杂的联接查询。这种查询通常用于从分布在不同表中的相关...
在SQL(Structured Query Language)中,多表关联查询是数据操作的核心部分,它允许我们从多个相关表中获取数据。本篇文章将详细讲解SQL中的左外连接、右外连接以及嵌套查询,帮助你深入理解这些重要概念。 一、左...
### SQL根据表中某列对值选择关联不同的表 在实际的数据处理过程中,经常会遇到根据一个表中的某个字段值来决定与其他哪些表进行关联的情况。这种情况可以通过多种方式来实现,其中最常见的两种方法是使用`CASE`...
### SQL实现两张无关联表的数据列合并在一张结果集中 #### 实现思路及技术要点解析 在实际工作中,我们经常会遇到需要将两张无关联表的数据列合并到一个结果集中的需求。这种操作可以帮助我们更好地组织数据,使得...
Excel中SQL多表查询
本手册将详细讲解SQL的基本概念、语法和常见查询技巧,帮助用户快速掌握并运用到实际工作中。 一、SQL概述 SQL起源于1970年代,由IBM的研究员开发,最初称为SEQUEL(Structured English Query Language)。随着时间...
sql多表关联查询