В этом учебном пособии вы узнаете, как использовать оператор SELECT TOP в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Оператор SELECT TOP SQL Server (Transact-SQL) используется для извлечения записей из одной или нескольких таблиц в SQL Server и ограничения количества возвращаемых записей на основе фиксированного значения или процента.
Синтаксис
Синтаксис оператора SELECT TOP в SQL Server (Transact-SQL):
expressions
FROM tables
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]];
Параметры или аргументы
TOP (top_value) - возвращает верхнее число строк в результирующем наборе на основе top_value. Например, TOP (10) вернет первые 10 строк из полного набора результатов.
PERCENT - необязательный. Если задан PERCENT, то верхние строки основаны на проценте от общего набора результатов (как указано в верхнем значении). Например, TOP (10) PERCENT вернет верхние 10% полного набора результатов.
WITH TIES - необязательный. Если указано условие WITH TIES, то возвращаются строки, связанные со строкой на последнем месте в ограниченном результирующем наборе. Это может привести к возврату большего количества строк, чем позволяет параметр TOP.
expressions - столбцы или вычисления, которые вы хотите получить.
tables - таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, перечисленная в предложении FROM.
WHERE conditions - необязательный. Условия, которые должны быть выполнены для выбранных записей.
ORDER BY expression - необязательный. Он используется в операторе SELECT TOP для сортировки записей, которые вы хотите вернуть. ASC в порядке возрастания, а DESC - в порядке убывания.
Пример использования ключевого слова TOP
Давайте посмотрим на пример SQL Server, где мы используем ключевое слово TOP в операторе SELECT.
Например:
1 2 3 4 5 |
SELECT TOP(5) employee_id, last_name, first_name FROM employees WHERE last_name = 'Samson' ORDER BY employee_id; |
В этом примере SQL Server SELECT TOP были выбраны первые 5 записей из таблицы employees, где last_name – ‘Samson’. Если в таблице employee есть другие записи с last_name ‘Samson’, то они не будут возвращены оператором SELECT.
Вы можете изменить этот пример, включив предложение WITH TIES следующим образом:
1 2 3 4 5 |
SELECT TOP(5) WITH TIES employee_id, last_name, first_name FROM employees WHERE last_name = 'Samson' ORDER BY employee_id; |
Предложение WITH TIES будет включать строки, которые могут быть связаны со строкой на последнем месте в ограниченном наборе результатов. Поэтому, если с 5-й строкой верхнего набора связаны еще две строки, то все эти связанные строки будут возвращены оператором SELECT TOP. Это приведет к возврату более 7 записей.
Пример использования ключевого слова TOP PERCENT
Рассмотрим пример SQL Server, в котором мы используем ключевое слово TOP PERCENT в операторе SELECT.
Например:
1 2 3 4 5 |
SELECT TOP(10) PERCENT employee_id, last_name, first_name FROM employees WHERE last_name = 'Samson' ORDER BY employee_id; |
Этот пример SQL Server SELECT TOP выберет первые 10% записей из полного набора результатов. Поэтому в этом примере оператора SELECT вернет 10% записей из таблицы employees, где last_name - 'Samson'. Остальные 90% набора результатов не будут возвращены оператором SELECT.
Вы можете изменить этот пример, включив предложение WITH TIES следующим образом:
1 2 3 4 5 |
SELECT TOP(10) PERCENT WITH TIES employee_id, last_name, first_name FROM employees WHERE last_name = 'Samson' ORDER BY employee_id; |
Предложение WITH TIES будет включать строки, которые могут быть связаны со строкой которая на последнем месте в ограниченном наборе результатов. Поэтому, если есть такие строки в наборе записей SELECT TOP (10) PERCENT, то эти связанные записи будут возвращены оператором SELECT TOP. Это приведет к возврату более 10% от полного набора записей.