мы можем использовать порядок по предложению в SQL Server 2005 - PullRequest
0 голосов
/ 24 января 2012

Можем ли мы использовать порядок по пунктам в SQL Server 2005?

    CREATE VIEW vw_authors 

    AS

    SELECT TOP 10 PERCENT * 

    FROM dbo.authors 
    Group by au_id
    ORDER BY au_fname

Ответы [ 3 ]

4 голосов
/ 24 января 2012

Да и нет.Вы не можете использовать order by в самом представлении, чтобы указать порядок.Вы можете использовать его для выбора строки, например, с top 10.Из онлайн-документов MSDN :

Предложения SELECT в определении представления не могут включать следующее: предложения
COMPUTE или COMPUTE BY;
Предложение ORDER BY, если в списке выбора оператора SELECT (a) ;
ключевое слово INTO;
* * 1023 отсутствует предложение TOP;* clause;
Ссылка на временную таблицу или табличную переменную.

(a) Предложение ORDER BY используется только для определения строк, возвращаемых TOP предложение в определении представления.Предложение ORDER BY не гарантирует упорядоченные результаты при запросе представления, если только в запросе не указано иное ORDER BY.

2 голосов
/ 24 января 2012

Да, вы можете.

CREATE VIEW vw_authors 

AS

SELECT TOP 10 PERCENT * 

FROM dbo.authors 

WHERE au_fname='John'

Однако ORDER BY недопустимо. Представление создает динамический набор результатов, который затем может быть запрошен так же, как таблица. При запросе представления вы можете ORDER BY:

SELECT au_fname
FROM vw_authors
ORDER BY au_fname
1 голос
/ 24 января 2012

Вот хороший Обзор представлений в SQL Server 2005 .Как отмечено в статье, представления могут быть проиндексированы, так что запросы представления могут быть эффективно упорядочены с помощью ORDER BY.Также см. Эту статью Microsoft об индексированных представлениях .

Краткий ответ: нет, вы не можете использовать ORDER BY при создании представления, но вы можете индексировать представление и использоватьбыстро ORDER BY на запросы этого представления.

Надеюсь, это поможет.Удачи в вашем проекте: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...