7.16 SQL Server EXCEPT(补集)

SQL Server EXCEPT

简介

SQL Server EXCEPT比较两个查询的结果集,并返回第一个查询中未出现在第二个查询中行。换句话说,EXCEPT返回的是query_1-query_2

语法:

query_1
EXCEPT
query_2

此语法中:

  • 两个查询中列的数量和顺序必须相同。
  • 对应列的数据类型必须相同或兼容。

下图显示了两个结果集T1和T2的除运算:

图中:

  • T1包括1、2和3。
  • T2包括2、3和4。

T1和T2的EXCEPT返回1,这是T1结果集中不出现在T2结果集中的不同行。

示例

有如下产品和订单项表:

A)EXCEPT简单示例

使用EXCEPT运算符查找没有销售的产品:

SELECT
product_id
FROM
production.products
EXCEPT
SELECT
product_id
FROM
sales.order_items;

本例中,第一个查询返回所有产品。第二个查询返回销售过的产品。因此,结果仅包括没有销售的产品。

B)EXCEPT与ORDER BY示例

若要对EXCEPT的结果排序,还是直接在最后一个查询中添加ORDER BY子句。

例如,以下示例查找没有销售的产品,并按其id升序对产品进行排序:

SELECT
product_id
FROM
production.products
EXCEPT
SELECT
product_id
FROM
sales.order_items
ORDER BY
product_id;

posted @   平元兄  阅读(597)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示