SQL. Сортировка по полю - PullRequest
       35

SQL. Сортировка по полю

0 голосов
/ 10 апреля 2010

Я создал простое представление, состоящее из 3 таблиц в SQL.

Щелкнув правой кнопкой мыши и выбрав Дизайн, в таблице обозревателя объектов я изменил свое собственное представление.Я только что добавил sortby asc в поле.

Проблема заключается в том, что изменения не отражаются в выводе View.После сохранения вида и выбора Открыть вид сортировка не отображается на выходе.

Так что же здесь происходит?

Ответы [ 3 ]

3 голосов
/ 10 апреля 2010

Технически, можно испечь сортировку в VIEW, но это крайне не рекомендуется. Вместо этого вы должны применить сортировку при выборе из вида следующим образом:

Select ...
From MyView
Order By SortByCol ASC

Если вы действительно хотите знать (но, опять же, я настоятельно рекомендую против этого), вы можете использовать команду TOP, чтобы обойти ограничение сортировки в представлении:

Select TOP 100 PERCENT * Col1, Col2....
From Table1
Order By SortByCol ASC
0 голосов
/ 10 апреля 2010

Кажется:

Существует ограничение на предложения SELECT в определении представления в SQL Server 2000, SQL 2005 и SQL 2008. Оператор CREATE VIEW не может включать в себя предложение ORDER BY, если только в списке выбора SELECT нет также предложения TOP заявление. Предложение ORDER BY используется только для определения строк, которые возвращаются предложением TOP в определении представления. Предложение ORDER BY не гарантирует упорядоченные результаты при запросе представления, если только в запросе не указано ORDER BY.

Существует также исправление, которое необходимо применить. После этого вы должны использовать Top 100%, чтобы убедиться, что заказ по работе.

НТН

0 голосов
/ 10 апреля 2010

Обычно , виды не могут быть отсортированы.

(Как уже упоминалось, есть способ взломать его, но, поскольку вы используете визуальный конструктор запросов, а не пишете определение представления в SQL, этот взлом, вероятно, сложно реализовать).

Вы на самом деле не «модифицировали» свое представление, вы только изменили оператор SELECT, который EM использовал для выбора из вашего представления. Настройки сортировки не сохраняются в определении представления.

Когда вы закрываете вкладку, EM не запоминает ваши предпочтения сортировки для этого представления, поэтому, когда вы снова открываете представление, оно выходит в любом порядке, который решит SQL Server.

...