при существующей пятибальной системе возвратит максимум четыре
строки, содержащих значения - 2,3,4,5. Порядок следования этих значе-
ний предсказать невозможно, поэтому при необходимости получить ре-
зультаты запроса в отсортированном виде необходимо явно указать в его
тексте параметры, необходимые для сортировки.
Сортировка результатов запроса
Фраза ORDER BY…, необходимая для представления результатов
выборки в отсортированном виде, обязательно должна быть последней в
команде SELECT, поскольку сортировка результатов всегда завершает
выполнение запроса на выборку.
После ключевых слов ORDER BY следует указание, как именно тре-
буется отсортировать результаты. Сортировка может быть выполнена по
одному или нескольким столбцам. В последнем случае сначала выполня-
ется сортировка по первому из столбцов, указанных в списке, в случае
наличия одинаковых значений, строки с одинаковыми значениями сорти-
руются по второму из столбцов и т.д.
Сортировку можно выполнять по столбцам различных типов, ис-
ключая типы больших объектов (BLOB, CLOB). Сортировка по тексто-
вым столбцам выполняется в лексикографическом (алфавитном) порядке,
сортировка по столбцам даты и времени – в хронологическом порядке.
По умолчанию значения сортируются по возрастанию (точнее, по
неубыванию), но можно установить порядок сортировки «по убыванию»
с помощью ключевого слова DESC[ENDING]. Можно и явно указать сор-
тировку по возрастанию с помощью ключеого слова ASC[ENDING], но
это никак не отразится на результате. Если сортировка выполняется сразу
по нескольким столбцам, DESC необходимо указывать для каждого
столбца в списке, для которого необходима сортировка по убыванию.
Например, запрос
SELECT name_st FROM students ORDER BY name_st
возвратит список студентов в алфавитном порядке, а запрос
SELECT name_st FROM students ORDER BY name_st, born
не только отсортирует список в алфавитном порядке, но и расставит од-
нофамильцев в соответствии с их возрастом (первым будет самый стар-
ший, т.к. у него самая меньшая дата рождения). Если мы хотим расста-
вить однофамильцев в порядке убывания даты рождения, следует изме-
нить текст так:
SELECT name_st FROM students ORDER BY name_st, born DESC
Если и сортировать фамилии требуется в порядке, обратном алфа-
витному, текст будет выглядеть так:
SELECT name_st FROM students ORDER BY name_st DESC, born DESC