Есть ли в SQL Server "Заказ по умолчанию по столбцу"?
Когда я выполняю запрос типа SELECT col1, col2, col3 FROM table
, он сортируется по первичному ключу по возрастанию.
Мне просто интересно, есть ли способ указать другой столбец, например ORDER BY CreatedDate DESC
, если нет предложения Order By?
Я сомневаюсь в этом (так как это было бы очень неинтуитивно, но все равно интересно.
Ответы
Ответ 1
Нет. Любой заказ, который вы видите, является артефактом стратегии оптимизатора запросов. Теория реляций запрещает существование какого-либо неявного упорядочения любого набора данных.
Вы не можете даже рассчитывать на тот же порядок в следующий раз для одного и того же запроса, потому что стратегия оптимизатора зависит от контекста и данных, которые могут измениться.
Ответ 2
Даже поведение, которое вы видите (упорядоченное по pk), не гарантируется стандартом. Вы всегда должны указывать порядок, по которому вы хотите, чтобы вещи были получены.