DISTINCT による重複の除去

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

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

USE AdventureWorks;
GO
SELECT DISTINCT ProductID
FROM Production.ProductInventory

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

ms187831.note(ja-jp,SQL.90).gif重要 :
DISTINCT を使ったステートメントの出力結果は、DISTINCT が適用される列または式の照合順序によって決まります。

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

ms187831.note(ja-jp,SQL.90).gifメモ :
SQL-92 規格に準拠し、Microsoft SQL Server 2005 の他のシステムとの互換性を保つ場合は、ALL キーワードを使用してすべての行を明示的に要求できます。ただし、ALL は既定値なので指定する必要はありません。

参照

その他の技術情報

SELECT 句 (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手