SQL Server 2005のビューでorder by句を使用できますか?SQL Server 2005のビューでorder by句を使用できます
CREATE VIEW vw_authors
AS
SELECT TOP 10 PERCENT *
FROM dbo.authors
Group by au_id
ORDER BY au_fname
SQL Server 2005のビューでorder by句を使用できますか?SQL Server 2005のビューでorder by句を使用できます
CREATE VIEW vw_authors
AS
SELECT TOP 10 PERCENT *
FROM dbo.authors
Group by au_id
ORDER BY au_fname
はい、いいえ。ビュー自体にorder by
を使用して順序を指定することはできません。 は、top 10
などの行選択に使用できます。
ビュー定義に
SELECT
句は以下を含むことができません:MSDN online docsから
COMPUTE
又はCOMPUTE BY
句。
ORDER BY
句、SELECT
声明(a)はの選択リストのTOP
句もある場合を除き、
INTO
キーワード;
OPTION
句;
一時テーブルまたはテーブル変数への参照。(A)
ORDER BY
句は、ビュー定義にTOP
句によって返される行を決定するためにのみ使用されます。ORDER BY
句は、照会自体でORDER BY
が指定されていない限り、ビューの照会時に順序付き結果を保証するものではありません。
はいできます。
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
私はすでに実装されています。私は –
'ORDER BY'についての言い回しが' TOP 10 PERCENT'が何を指しているのかを定義しているので、OPのクエリで有効です。それは、そのビューに対する選択からの結果が特定の順序で出力されることを意味すると解釈すべきではありません。 –
良い点@MartinSmith私はそれを考慮しなかった – Curt
をここで素敵Overview of Views in SQL Server 2005です。この記事で触れたように、ビューは、ORDER BY
を使用してビューのクエリを効率的に並べ替えることができるようにインデックスを付けることができます。また、Microsoft article on indexed viewsを参照してください。
要約答え:いいえ、ビューを作成するときにORDER BY
を使用することはできませんが、インデックスビューをし、そのビューのクエリに速いORDER BY
を使用することができます。
これが役に立ちます。あなたのプロジェクトで幸運:-)
試しましたか? –
「ORDER BY句は、TOPやFOR XMLも指定されていない限り、ビュー、インライン関数、派生テーブル、サブクエリ、共通テーブル式では無効です」などのエラーが表示されます。 –
なぜビューで 'order by'を使いたいのですか?あなたは何を達成したいですか? –