Есть ли в SQL Server "Заказ по умолчанию по столбцу"?

Когда я выполняю запрос типа SELECT col1, col2, col3 FROM table, он сортируется по первичному ключу по возрастанию.

Мне просто интересно, есть ли способ указать другой столбец, например ORDER BY CreatedDate DESC, если нет предложения Order By?

Я сомневаюсь в этом (так как это было бы очень неинтуитивно, но все равно интересно.

Ответ 1

Нет. Любой заказ, который вы видите, является артефактом стратегии оптимизатора запросов. Теория реляций запрещает существование какого-либо неявного упорядочения любого набора данных.

Вы не можете даже рассчитывать на тот же порядок в следующий раз для одного и того же запроса, потому что стратегия оптимизатора зависит от контекста и данных, которые могут измениться.

Ответ 2

Даже поведение, которое вы видите (упорядоченное по pk), не гарантируется стандартом. Вы всегда должны указывать порядок, по которому вы хотите, чтобы вещи были получены.