DISTINCT による重複の除去

DISTINCT キーワードを使用すると、SELECT ステートメントの結果から重複する行を除去できます。DISTINCT を指定しなかった場合は、重複した行を含むすべての行が返されます。たとえば、DISTINCT を指定しないで ProductInventory のすべての製品 ID を選択すると、返されるのは 1,069 行です。

DISTINCT を指定すると、重複が除去され、一意の製品 ID のみが返されます。

USE AdventureWorks2008R2;
GO
SELECT DISTINCT ProductID
FROM Production.ProductInventory ;

このクエリから返されるのは 432 行です。

重要な注意事項重要

DISTINCT を使ったステートメントの出力結果は、DISTINCT が適用される列または式の照合順序によって決まります。

DISTINCT キーワードでは、NULL 値は互いに重複値と見なされます。DISTINCT が SELECT ステートメントに含まれる場合、NULL はいくつあっても結果には 1 つしか返されません。

注意

ISO 規格に準拠し、SQL Server の他のシステムとの互換性も維持するには、ALL キーワードを使用してすべての行を明示的に要求できます。ただし、ALL は既定値なので指定する必要はありません。

関連項目

参照