在SQL Server(Transact-SQL)中DISTINCT子句用於從結果集中刪除重複記錄。 DISTINCT子句只能和SELECT語句一塊兒使用。html
在SQL Server(Transact-SQL)中DISTINCT子句的語法是:sql
SELECT DISTINCT expressions FROM tables [WHERE conditions];
expressionsexpress
要檢索或計算的列spa
tablesserver
但願從中檢索記錄的表。在FROM子句中必須至少有列出一個表;htm
WHERE conditionsget
可選的。要選擇的記錄必須知足的條件it
當DISTINCT子句中只提供了一個表達式,查詢將返回該表達式的惟一值;io
當DISTINCT子句中提供了多個表達式,查詢將檢索列出的表達式惟一組合;table
在SQL Server中,DISTINCT子句不忽略NULL值。所以在SQL語句中使用DISTINCT子句時,結果集將包括NULL並做爲一個惟一的值;
示例 - 用單一表達式
讓咱們來看看一個最簡單的SQL Server DISTINCT子句的例子。使用SQL Server DISTINCT子句返回一個字段,並去除結果集中的重複行記錄。
例如:
SELECT DISTINCT last_name FROM employees WHERE employee_id >= 50;
這篇SQL Server DISTINCT的例子就是從 employees 查詢 employee_id 大於或等於50返回全部 last_name 的惟一值。
示例 - 使用多個表達式
讓咱們來看看如何使用在SQL Server DISTINCT子句在SELECT語句從多個字段中刪除重複行記錄。
例如:
SELECT DISTINCT first_name, last_name FROM employees WHERE employee_id >=50 ORDER BY last_name;
這篇SQL Server DISTINCT子句的例子就是從 employees 表查詢 employee_id 大於或等於50的結果,並按 last_name 升序返回 last_name 和 first_name 組合的惟一值。
在這種狀況下,DISTINCT應用於DISTINCT關鍵字以後列出的每一個字段,並所以返回不一樣(惟一)的組合。