ПОЧЕМУ?
Короткий ответ:
Поскольку комплекты не имеют порядка.
Longer Ответ:
SQL является реализацией реляционного исчисления, которое основано на tuple- Наборов (таблицы, наборы строки и т.д.). Наборы не имеют никакого заказа (в отличие от соответствующей концепции, Списки, которые являются наборами с заказом).
Кроме того, нет (вообще) никакой пользы для применения упорядочения к набору перед окончательным выходом, а также значительное количество вреда, потому что:
- оптимизатор может добавить или удалить заказ на этапе выполнение запроса, так как он считает нужным, чтобы повысить производительность запроса,
- Таким образом, это будет просто (значительная) дополнительная работа,
- И оптимизатор может просто отменить это следующий шаг в любом случае
- и запросы и этапы могут выполняться параллельно, так как opti mizer видит припадки, и это тоже, как правило, противоречит сохранению порядка.
- Так применяя его раньше, не означает, что этот порядок еще будет там на более поздней стадии
Единственное место, которое оно обычно имеет смысл в конечной продукции, поскольку данные должны передаваться последовательно там так или иначе.
Единственные места, где это имеет смысл до Конечный результат для таких вещей, как TOP (N)
, которому нужен заказ, чтобы определить, какие строки являются «Верхними» строками.
Он также может иметь смысл для определенных функций агрегата, поэтому многие из них имеют свои собственные статьиORDER BY
. Также для построения XML-результатов используются промежуточные этапы.
В этом конкретном случае «порядок по» в подзапросе бессмысленен, так как вы хотите определить только «Col1» в этом подмножестве или нет - так зачем беспокоиться о порядке элементов подмножества? В более общем плане - можете ли вы предоставить какой-либо образец полезного «порядка» в упомянутых объектах базы данных? –
В каком сценарии будет полезен топлесс ORDER BY в подзапросе?Только крайняя оговорка имеет значение –
, как указано выше, в вашем случае не имеет значения порядок результатов в подзапросе. Независимо от того, упорядочены ли данные по возрастанию, по убыванию или в произвольном порядке, это не влияет на результаты во внешнем запросе. – Greg