Как отсортировать в представлении SQL

Я создал представление SQL, и я должен отсортировать результаты выбора при помощи ORDER BY на 4 полях, но я получаю сообщение, что ORDER BY не может использоваться в представлениях, если я не использую TOP. Кто-то может объяснить, почему TOP необходим, и у кого-то есть обходное решение для сортировки в представлении SQL?

Спасибо.

9
задан Patrick Kostjens 4 June 2016 в 10:19
поделиться

3 ответа

вам не нужно сортировать вид. вид похож на таблицу, поэтому вы сортируете его, когда выбираете из него:

select * from yourView order by yourColumns
17
ответ дан 4 December 2019 в 09:36
поделиться

Если вы используете SQL Server, вы можете сделать

select top 100 percent * 
from MyTable 
order by MyColumn

Конечно, вы не должны использовать * на ваш взгляд, я просто использовал его здесь для краткости.

-1
ответ дан 4 December 2019 в 09:36
поделиться
[

][]Нет гарантии, что вывод изображения будет заказан[][

] [

]Для результирующих множеств применяется только крайнее ЗАКАЗАНИЕ BY: никаких внутренних - нет. Таким образом, только этот ORDER BY может быть гарантированно сработан:[

] [
SELECT col1, col2, FROm MyView ORDER BY col2
] [

]Вы можете добавить его в представления или производные таблицы, и это приведет к "[]промежуточной материализации[]", потому что результаты должны быть упорядочены. Однако, для SQL Server 2005 и выше вы должны использовать []TOP 2000000000[], а не []TOP 100 PERCENT[] (за исключением того HF, о котором упоминал Даниэль Вассалло!)[

] [

]Кто-то []будет[] в какой-то момент также использовать ваше представление в другом порядке, нежели внутреннее.[

].
6
ответ дан 4 December 2019 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: