Предложение ORDER BY определяет порядок сортировки:
SELECT select_list
FROM table_expression
ORDER BY sort_expression1 [ASC | DESC] [NULLS { FIRST | LAST }]
[, sort_expression2 [ASC | DESC] [NULLS { FIRST |
LAST }] ...]
Выражение (я) сортировки может быть любым выражением, которое будет допустимым всписок выбора запроса.Например:
SELECT a, b FROM table1 ORDER BY a + b, c;
...
Выражение сортировки также может быть меткой столбца или номером выходного столбца, как в:
SELECT a + b AS sum, c FROM table1 ORDER BY sum;
SELECT a, max(b) FROM table1 GROUP BY a ORDER BY 1;
обаиз которых сортировать по первому выходному столбцу.Обратите внимание, что имя выходного столбца должно стоять отдельно, то есть его нельзя использовать в выражении - например, это неверно:
SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- wrong
Это ограничение сделано дляуменьшить двусмысленность.Существует двусмысленность, если элемент ORDER BY - это простое имя, которое может совпадать либо с именем выходного столбца, либо с столбцом из выражения таблицы.Выходной столбец используется в таких случаях.Это может привести к путанице только в том случае, если вы используете AS для переименования выходного столбца в соответствии с именем какого-либо другого столбца таблицы.
Может кто-нибудь объяснить, что «имя выходного столбца должно стоять отдельно, то есть не можетбыть использованы в выражении "означает?
Спасибо.