使用 DISTINCT 消除重复项

DISTINCT 关键字可从 SELECT 语句的结果中消除重复的行。如果没有指定 DISTINCT,将返回所有行,包括重复的行。例如,如果选择 ProductInventory 中的所有产品 ID 时没有使用 DISTINCT,将返回 1069 行。

如果使用了 DISTINCT,就可以消除重复的行,只查看唯一的产品 ID:

USE AdventureWorks;
GO
SELECT DISTINCT ProductID
FROM Production.ProductInventory

此查询将返回 432 行。

ms187831.note(zh-cn,SQL.90).gif重要提示:
涉及 DISTINCT 的语句的输出取决于应用 DISTINCT 的列或表达式的排序规则。

对于 DISTINCT 关键字来说,空值将被认为是相互重复的内容。当 SELECT 语句中包括 DISTINCT 时,不论遇到多少个空值,结果中只返回一个 NULL

ms187831.note(zh-cn,SQL.90).gif注意:
为了与 SQL-92 标准和其他 Microsoft SQL Server 2005 实现兼容,ALL 关键字可以显式请求所有行。但是,由于 ALL 是默认的,所以无需指定它。

请参阅

其他资源

SELECT 子句 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助