使用 UNION、INTERSECT 和 EXCEPT 对查询结果执行集合运算

本文探讨了在SQL中如何使用UNION、INTERSECT和EXCEPT对查询结果执行集合运算,特别是在处理NULL值时的不同行为。集合运算符将NULL视为相等,而在搜索条件中比较NULL则是未知的。通过举例说明,解释了这些运算符在处理包含NULL值的行时如何影响结果集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对查询结果进行汇总、分组和排序

使用 UNION、INTERSECT 和 EXCEPT 对查询结果执行集合运算

集合运算符和 NULL

集合运算符 UNION、EXCEPT 和 INTERSECT 处理 NULL 的方式与 NULL 在搜索条件中时处理的方式不同。此差异是使用集合运算符的主要原因之一。

在比较行时,集合运算符将 NULL 值视为彼此相等。相反,在搜索条件中将 NULL 与 NULL 进行比较时,结果是未知的(不为真)。

此差异的一个特别有用的结果是:query-1 EXCEPT ALL query-2 的结果集中的行数始终 是各个查询的结果集中的行数之差。

以两个表 T1 和 T2 为例,其中每个表都具有以下列:

col1 INT,
col2 CHAR(1)

表中的数据如下:

  • 表 T1。

    </
    col1 col2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值