移除重複項目
雖然資料表中的資料列一定是唯一的,但在只選取資料行子集時,即使原始資料列是唯一的,結果資料列有可能不是唯一的。 例如,您有一份供應商資料表,且城市和州 (或省) 必須是唯一的,因此任何城市不會有一個以上的供應商。 但是,如果您只想查看供應商所在的城市和國家/地區,則傳回的結果可能不是唯一的。 假設您撰寫下列查詢:
SELECT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
此查詢可能傳回如下結果:
縣/市
CountryRegion
Aurora
加拿大
Barrie
加拿大
Brampton
加拿大
Brossard
加拿大
Brossard
加拿大
Burnaby
加拿大
Burnaby
加拿大
Burnaby
加拿大
Calgary
加拿大
Calgary
加拿大
...
...
依預設,SELECT 子句包含隱含的 ALL 關鍵字,而導致此行為:
SELECT ALL City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
T-SQL 也支援替代的 DISTINCT 關鍵字,可移除任何重複的結果資料列:
SELECT DISTINCT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
使用 DISTINCT 時,此範例只會傳回 SELECT 清單中的各個唯一值組合:
縣/市
CountryRegion
Aurora
加拿大
Barrie
加拿大
Brampton
加拿大
Brossard
加拿大
Burnaby
加拿大
Calgary
加拿大
...
...