2.11. Сортировка ORDER BY

Для сортировки используется оператор ORDER BY. Если посмотреть на общий вид команды SELECT, который мы рассматривали в главе 2.1, то вы увидите, что этот оператор должен стоять последним. Мы немного перескочили и не рассмотрели операторы GROUP BY и HAVING, которые описываются раньше сортировки, просто порядок указания операторов не всегда удобен с точки зрения последовательности их изучения. В данном случае, GROUP BY и HAVING лучше приберечь на ужин, т.е. рассмотреть последними.

После оператора ORDER BY через запятую указываются поля, по которым надо отсортировать. В самом конце нужно поставить АSC (сортировать в порядке возрастания) или DESC (в порядке убывания). Если вы не ставите АSC или DESC, то таблица сортируется по возрастанию и подразумевается параметр АSC. Например, давайте выведем содержимое таблицы tbPeoples, отсортированное по фамилии:

SELECT *
FROM tbPeoples
ORDER BY vcFamil

Можно отсортировать и по нескольким полям. Для этого нужно перечислить их через запятую. Например, следующий запрос сортирует результат по фамилии, имени и отчеству:

SELECT *
FROM tbPeoples
ORDER BY vcFamil, vcName, vcSurname

Теперь посмотрим, как можно отсортировать все колонки результата по убыванию:

SELECT *
FROM tbPeoples
ORDER BY vcFamil DESC, vcName DESC, vcSurname DESC

Обратите внимание, что после каждого имени поля стоит ключевое слово DESC. Если хоть один раз не указать DESC, то будет использоваться значение по умолчанию – ASC, и по этому полю произойдет сортировка по возрастанию. Да, можно одно поле отсортировать в одну сторону, а другое поле в другую, например:

SELECT *
FROM tbPeoples
ORDER BY vcFamil ASC, vcName DESC, vcSurname DESC

Так как ASC является значением по умолчанию, то его можно опускать. Это значит, что следующий запрос идентичен предыдущему:

SELECT *
FROM tbPeoples
ORDER BY vcFamil, vcName DESC, vcSurname DESC

Предыдущая глава

2.10. Расчеты в Transact-SQL

Следующая глава

2.12. Группировка – Group By

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне