sql
August 30, 2023

SQL. Часть 2. Выводим не всё и по порядку

Порой выводить результаты запроса надо в каком-то порядке или не все, а какую-то часть. Для это можно использовать следующее.

Ключевое слово ORDER BY

Ключевое слово ORDER BY используется для сортировки результирующего набора в порядке возрастания или убывания. По умолчанию упорядочение по ключевым словам сортирует записи в порядке возрастания. Для сортировки записей в порядке убывания используйте ключевое слово «описание».

Примеры:

SELECT * FROM Customers ORDER BY Country

Эта инструкция выбирает всех записи из таблицы «Customers», отсортированной по столбцу «Country» (по алфавиту). Если надо вывести те же данные, но в порядке, обратном алфавитному, надо использовать описание "DESC" (сортировка по убыванию).

SELECT * FROM Customers ORDER BY Country DESC

Для сортировки по возрастанию можно использовать описание "ASC" (используется по умолчанию).

Заметим, что можно соритровать информацию по нескольким столбцам:

SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC

Эта инструкция выбирает все записи из таблицы «Customers», отсортированных по алфавиту значения поля в столбце «Country» и в обратном алфавитном порядке по значению поля в столбце «CustomerName».

Предложение SELECT Top/Limit

Предложение SELECT Top/Limit используется для указания количества возвращаемых записей. Предложение SELECT Top/Limit полезно для больших таблиц с тысячами записей. Возврат большого количества записей может повлиять на производительность. Кроме того, такие данные просто тяжело читать.

Почему Top/Limit? Некоторые версии SQL (например, MySQL) не поддерживает предложение "Top", но поддерживают предложение "Limit" (и наоборот).

Примеры:

1. SELECT * FROM Customers LIMIT 100

2. SELECT TOP 100 * FROM Customers

Выводятся первые 100 записей из таблицы «Customers» отсортированные по умолчанию.

Теперь соединим оба описываемых параметра в одном примере:
SELECT TOP 10 * FROM Customers ORDER BY Country

По данному запросу выводятся 100 первых записей из таблицы «Customers» отсортированные по алфавиту названия страны.