В этом учебном пособии вы узнаете, как использовать DISTINCT в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Оператор DISTINCT SQL Server (Transact-SQL) используется для удаления дубликатов из набора результатов. DISTINCT может использоваться только с операторами SELECT.
Синтаксис
Синтаксис оператора DISTINCT в SQL Server (Transact-SQL):
FROM tables
[WHERE conditions];
Параметры или аргументы
expressions - столбцы или вычисления, которые вы хотите получить.
tables - таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, перечисленная в предложении FROM.
WHERE conditions - необязательный. Условия, которые должны быть выполнены для выбранных записей.
Примечание
- Когда в DISTINCT предусмотрено только одно expressions, запрос возвращает уникальные значения для этого expressions.
- Если в DISTINCT представлено более одного expressions, запрос будет получать уникальные комбинации для указанных expressions.
- В SQL Server оператор DISTINCT не игнорирует значения NULL. Поэтому при использовании DISTINCT в вашем SQL-предложении ваш результирующий набор будет включен NULL в качестве отдельного значения.
Пример с одним выражением
Рассмотрим простейший пример SQL Server DISTINCT. Мы можем использовать SQL Server DISTINCT, чтобы вернуть одно поле, которое удаляет дубликаты из набора результатов.
Например:
1 2 3 |
SELECT DISTINCT last_name FROM employees WHERE employee_id >= 90; |
Этот пример SQL Server DISTINCT возвращает все уникальные значения last_name из таблицы employees, где employee_id больше или равно 90.
Пример с несколькими выражениями
Рассмотрим, как вы можете использовать SQL Server DISTINCT для удаления дубликатов из нескольких полей в предложении SELECT.
Например:
1 2 3 4 |
SELECT DISTINCT first_name, last_name FROM employees WHERE employee_id >=30 ORDER BY last_name; |
Этот пример SQL Server DISTINCT возвращает каждую уникальную комбинацию first_name и last_name из таблицы employees, где employee_id больше или равно 30. Результаты сортируются в порядке возрастания по полю last_name.
В этом случае DISTINCT применяется к каждому полю, указанному после ключевого слова DISTINCT, и, следовательно, возвращает различные комбинации.