Этот вопрос просто должен был быть на этом сайте :)
ORDER BY запрещено использовать в представлении, как я понял из-за возможности многократного упорядочивания при использовании этого представления.
Я знаю, что есть способы обойти это ограничение, например TOP 99.999999 PERCENT
, но я хотел бы знать, что является лучшим методом, а не как его взломать.
Итак, если я хочу создать представления в своей базе данных для личного использования, то есть я хочу подключиться к базе данных и просто просмотреть данные, исправленные и отсортированные, как мне это сделать, если я не могу заказать представление?
В настоящее время в моей базе данных SQL Server у меня есть представления с TOP
хаком, и я часто их использую, но это неправильно.
sql-server
view
order-by
yellowblood
источник
источник
Ответы:
Не существует такого понятия, как «упорядоченный» вид, потому что вид должен быть набором строк. Используйте хранимую процедуру, если вы хотите фиксированный порядок.
источник
TOP
с нимORDER BY
вы теперь определяете новый набор, поскольку порядок влияет на то, какие строки являются «верхними»; Вот почемуTOP
позволяет использоватьORDER BY
в определении представления.Только самый внешний ORDER BY будет гарантировать заказ
Это включает в себя ORDER BY в представлении
связи
источник
Добавьте ORDER BY к выводу представления, т.е.
источник