在本教學中,將學習如何使用SQL Server SELECT DISTINCT
子句檢索指定列列表中的唯一不同值。
SELECT DISTINCT子句簡介
有時,可能希望僅在表的指定列中獲取不同的值。那麼請使用SELECT DISTINCT
子句,如下所示:
SELECT DISTINCT
column_name
FROM
table_name;
查詢僅返回指定列中的不同值。 換句話說,它從結果集中刪除列中的重複值。
如果使用多列,語法如下所示:
SELECT DISTINCT
column_name1,
column_name2 ,
...
FROM
table_name;
該查詢使用SELECT
列表中所有指定列中的值組合來評估唯一性。
如果將DISTINCT
子句應用於具有NULL
值的列,則DISTINCT
子句將僅保留一個NULL
並消除其他的NULL
值。 換句話說,DISTINCT
子句將所有NULL
值視為相同的值。
SQL Server SELECT DISTINCT示例
為了方便演示,將使用示例資料庫中的customers
表。表的結構如下所示:
A. DISTINCT一個字段的示例
以下語句返回customers
表中所有客戶所在的所有城市:
SELECT
city
FROM
sales.customers
ORDER BY
city;
執行上面查詢語句,得到以下結果 -
從查詢輸出中可以清楚地看到,城市是重複的。
要獲取不同的城市唯一值,請按如下方式添加DISTINCT
關鍵字:
SELECT DISTINCT
city
FROM
sales.customers
ORDER BY
city;
執行上面查詢語句,得到以下結果:
現在,查詢為每組重複項返回一個不同的值。也就是說它從結果集中刪除了所有重複的城市。
B. DISTINCT多列示例
以下語句查找所有客戶的不同城市和州。
SELECT DISTINCT
city,
state
FROM
sales.customers
執行以下查詢語句,得到以下結果 -
在此示例中,語句使用city
和state
列中的值組合來評估重複項。
C. DISTINCT帶有null值示例
以下示例查找客戶的不同(唯一)電話號碼:
SELECT DISTINCT
phone
FROM
sales.customers
ORDER BY
phone;
執行上面查詢語句,得到以下結果:
在此示例中,使用DISTINCT
子句在phone
列上,結果中刪除其他NULL
僅保留一個NULL
值。
在本教學中,學習了如何使用SQL Server SELECT DISTINCT
子句檢索指定列列表中的不同值。
上一篇:
SQL Server數據查詢
下一篇:
SQL Server連接表