Сортировка строк производится после выполнения операции над множествами. Следственно, в конструкции ORDER BY
могут быть использованы только названия столбцов результата. Обращение к столбцу таблицы запрещено.
ORDER BY
добавляется в конце запроса. Например:
SELECT *
FROM table1
UNION
SELECT *
FROM table2
# | value | name |
---|---|---|
1 | 5 | five |
2 | 4 | four |
3 | 2 | two |
4 | 1 | one |
5 | 3 | three |
SELECT *
FROM table1
UNION
SELECT *
FROM table2
ORDER BY value
# | value | name |
---|---|---|
1 | 1 | one |
2 | 2 | two |
3 | 3 | three |
4 | 4 | four |
5 | 5 | five |
Запрещено использовать конструкцию ORDER BY
в подзапросах, результаты которых подвергаются операциям над множествами.
SELECT *
FROM table1
ORDER BY name
UNION ALL
SELECT *
FROM table2
syntax error at or near "UNION"