Источник: SQL exercises
Худшие методы - это то, что простирается от незначительного раздражения до того, что сводит вас с ума. Настоящий метод лежит на более умеренной стороне (в зависимости от того, как прошла ваша рабочая неделя). Попадали ли вы когда-нибудь на подобный запрос?
Select field1, field2, field3 from pubs order by 1, 2
Фактически, он должен выглядеть так:
Select field1, field2, field3 from pubs order by field1, field2
Мне приходилось слышать разные вариации о том, что это мощный инструмент пользователя (если изменяется предложение select, то не требуется также менять порядок сортировки), и "краткий" - означающее, что быстрее написать 1, 2, чем выписывать имена полей. Дайте мне шанс!
Шанс - это то, что Вы намереваетесь получить, когда кое-что меняется. Переработка оператора select изменяет порядок полей, который изменяет order by, который изменяет ...., то, как будут использоваться индексы! Это один из тех тонких моментов, который заставит Вас провести много времени в поисках решения проблем там, где они обычно никогда не возникают.
Но подождите ..., мы могли бы использовать нашего старого друга Select *, тогда не будет причин перерабатывать запрос! Мы обсудим достоинства select * в следующий раз, а пока будем исходить из того, что все еще имеются пользователи, которые настаивают на том, чтобы располагать в алфавитном порядке столбцы в EM (Enterprise Manager в SQL Server). Вы сталкиваетесь с той же самой проблемой. Порядок столбцов в select меняется, это меняет…
Andy Warren (оригинал: Worst Practice - Sorting by Ordinal)
Перевод: Моисеенко С.И.
Оригинал перевода