使用 DISTINCT 消除重复项
DISTINCT 关键字可从 SELECT 语句的结果中消除重复的行。如果没有指定 DISTINCT,将返回所有行,包括重复的行。例如,如果选择 ProductInventory 中的所有产品 ID 时没有使用 DISTINCT,将返回 1069 行。
如果使用了 DISTINCT,就可以消除重复的行,只查看唯一的产品 ID:
USE AdventureWorks2008R2;
GO
SELECT DISTINCT ProductID
FROM Production.ProductInventory ;
此查询将返回 432 行。
![]() |
---|
涉及 DISTINCT 的语句的输出取决于应用 DISTINCT 的列或表达式的排序规则。 |
对于 DISTINCT 关键字来说,空值将被认为是相互重复的内容。当 SELECT 语句中包括 DISTINCT 时,不论遇到多少个空值,结果中只返回一个 NULL。
![]() |
---|
为了与 ISO 标准和其他 SQL Server 实现兼容,ALL 关键字可以显式请求所有行。但是,由于 ALL 是默认的,所以无需指定它。 |