Как определено реляционной моделью, строки и столбцы в таблице неупорядочены. Это теория по крайней мере.
На практике, если вы хотите, чтобы данные поступали из запроса в определенном порядке, вам всегда следует использовать предложение ORDER BY
. Порядок вывода не гарантируется, если вы не предоставите это.
Можно было бы использовать ORDER BY
при вставке в таблицу, но это не гарантирует порядок вывода данных. Запрос может появляться каждый раз в одном и том же порядке ... но это не значит, что в следующий раз он будет повторяться в том же порядке.
Были проблемы с выходом Oracle 10g, когда агрегатные запросы (с GROUP BY
) не сортировались, поскольку пользователи стали полагаться на данные, сортируемые как побочный эффект группировки. С введением HASH GROUP BY
в дополнение к SORT GROUP BY
люди были пойманы. Это было полезным напоминанием о том, что всегда следует использовать ORDER BY
.