Можно ли отсортировать результаты во вью?

добавлено: 18 фев 11
понравилось:0
просмотров: 3179
комментов: 13

теги:

Автор: SomewhereSomehow

Ответ: можно, но это не правильно, т.к. недокументированно.
Согласно документации предложение order by запрещено во вью (если не указан оператор top, но и тогда порядок не гарантируется) и если вам нужно получить отсортированный результат из вью - то предложение order by необходимо указывать в запросе к этому вью.
Тем не менее, отсортированные данные получить все-таки можно, т.к. "как правило" (чисто эмпирически) top совместно с order by приводит к сортировке в плане (однако т.к. это не документировано само собой нет гарантии, что так будет всегда).
Рассмотрим некоторые из способов создания такой сортировки.
читать дальше...

Комментарии


  • Осталось написать одно:
    "Никогда так не делайте!" :)))

    Логика оптимизатора меняется не только при смене версии, но и в ServicePack.
    Больше того, вполне возможно, что она "уже поменялась" в отношении таких примеров, но просто пока никто не "нарывался".

  • Это точно, по этому я специально об этом сказал в конце и в начале.=)
    И что никто не нарывался допускаю очень даже. Хотя я конечно при помощи манипуляции индексами и запросами пытался искусственно создать ситуацию когда результат возвращался бы не отсортированным - у меня это пока не получилось, но это ни о чем не говорит...
    Если кто найдет - милости прощу сюда, с удовольствием сделаю апдейт к посту!

  • Статья развеселила. Спасибо за нелинейный подход к проблеме :-)

  • =)

  • Бред сумасшедшего :)

  • Очень аргументировано...

  • Не обижайтесь, но КПД вброшенной информации оставляет желать лучшего... :)

  • На самом деле способ прикольный и на форумах я его пока не видел, хотя вопросы задаются! =) ниче, скоро будет более полезная инфа=) че-нить еще придумаем! следующий пост про трай-кетч и то что он ловит не все ошибки =) (хотя конечно опытные товарищи усмехнуться от такого "открытия" (которое документировано) - ну на то они и оптыные=)).

  • А может лучше создать вместо View таблицу, и в последствии отслеживать изменения?

  • Почему комментарии удаляете? Глаза правда колет?

  • Не коменты, а только ваш комент. Т.к. он был очень несодержательным (как впрочем и этот), и не касался статьи, пообсуждать "хороший или плохой sql server" вы можете на соотв.форуме, а не здесь.

  • Ну да, содержательным коммент считался бы если многоуважаемого автора похвалили, признали нужность, важность и актуальность данной статьи, я правильно понимаю?

  • В вашем "содержательном коменте" вы зачем-то обругали не статью, а sql server - это не подходящее место для таких высказываний. А любые коментарии по теме я только приветсвую (даже негативные), как вы заметили. Превращать это место в "стену контакта" я не буду, т.к. никому это неинтересно, поэтому любой Ваш коментарий, уважаемый троль будет мной удаляться.



Необходимо войти на сайт, чтобы оставлять комментарии