Существует ли «порядок по столбцам по умолчанию» в SQL Server? - PullRequest
11 голосов
/ 12 апреля 2011

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

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

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

Ответы [ 2 ]

24 голосов
/ 12 апреля 2011

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

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

12 голосов
/ 12 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...