Комментарии 19
Нужен порядок на выборке — пишется order by
Вроде это не специфично для ms sql. Навскидку разве что mysql в myisam и innodb по PK отсортирует, и то без гарантий кажется
PostgreSQL вообще не сортирует результат выборки, а выдаёт в том порядке, в каком прочитал с диска. Нужен порядок — указывай ORDER BY явно.
Собственно после знакомства с ним я и стал добавлять ORDER BY почти во все запросы, результат которых отдаётся пользователю. Чаще всего ORDER BY id DESC или BY name/title/… ASC получается нужно по дефолту пользователям или их "заместителю" вроде дизайнера или продакт-оунера.
Совершенно не важно, почему при отсутствии ORDER BY сортировка будет разная.
Совершенно не важно, что это можно иногда предсказать.
Главное: пишите ORDER BY если это нужно.
Интересно, это у меня так мозги трансформировались от длительной работы с SQL, или всё-же некая логика в моих рассуждениях есть?
"Почему SQL Server не гарантирует сортировку результатов, если мы запросили результаты без сортировки?"
Я решил посмотреть что за курс у ребят, попытался зарегаться, чтобы пройти "вводный тест", но смс, которая необходима для верификации телефонного номера не пришла (видимо, что проблема в том, что номер указал не +7), но пришло письмо на почту и теперь я думаю, как долго меня будут мучать рекламными письмами...
Одно справедливо — наше наблюдение, что
Аналогия из мира схемотехники — что будет, если свободные входы логических элементов оставлять в воздухе? Чтобы ответить на этот вопрос, нужно знать особенности построения элементов различных типов — КМОП, ТТЛ, ТТЛШ. А можно просто всегда придерживаться правил, и фиксировать потенциал на свободном входе так, как предписано ТУ для микросхем, и даже не вдаваться в детали «а что будет, если..» — и это не будет признаком плохого, а будет, наоборот, признаком хорошего индустриального разработчика. При отладке, правда, нужно будет в уме построить вероятный отказ, связанный, например, с висящим в воздухе входом — но это тоже уже не тема туториала в любом случае…
Выборка и сортировка суть разные действия.
Например. Из колоды надо выбрать карты. Или из колоды надо выбрать карты, например все красные. Или из колоды надо выбрать все старшие красные карты. Во всех случаях выборка (SELECT) работает и работает быстро. Если надо сортировать (ORDER BY) это уже дополнительные расходы. И не важно какой алгоритм сортировки используется. В любом случае это дополнительные расходы.
Не в любом. Если алгоритм выборки гарантированно сортирует по нужному критерию, то дополнительных расходов нет.
Еще раз. Выборка и сортировка разные действия.
Алгоритм выборки… сортирует
Хотите сказать сортировка вставкой? Приемлем на малых выборках.
Почему SQL Server не гарантирует сортировку результатов без ORDER BY