Предложение order by определяет конкретный порядок строк в полученном результате выполнения запроса. Это предложение имеет следующий синтаксис:
order by {[col_name i col_number [asc | desc]]}, ...
Столбец coi_name определяет упорядочивание. Параметр coi_number является альтернативной спецификацией, которая задает столбец по его позиции в последовательности всех столбцов в списке выбора select (1 для первого столбца, 2 для второго и т. д.). asc задает возрастающий порядок, a desc - убывающий. При этом asc является значением по умолчанию.
Как показывает синтаксис предложения order by, критерии упорядочения могут содержать более одного столбца (пример 6.39).
В предложении order by также можно указывать столбцы по последовательному номеру столбца в списке выбора select. Предложение order by в примере 6.39 может быть записано в следующей форме: order by 2,1.
Использование номеров столбцов вместо их имен является альтернативным решением, если критерии упорядочения содержат агрегатные функции. (Другим способом является использование заголовков столбцов, которые затем появляются в предложении order by.) Однако рекомендуется использовать имена столбцов вместо их номеров в предложении order by для сокращения сложностей, которые могут возникнуть в запросе, если потребуется добавить некоторые столбцы в список выбора select или удалить из этого списка. В примере 6.40 показано использование номеров столбцов.
Язык Transact-SQL помещает значения null в начало списка, если упорядочивание выполняется по возрастанию, и в конце списка, если задан убывающий порядок.