SQL。フィールドでソート
-
25-09-2019 - |
質問
私はSQLに3つのテーブルから成る単純なビューを作成しています。
を右クリックすることでデザインを選択し、オブジェクトエクスプローラのテーブルに、私は私のカスタムビューを変更しました。私は、フィールドでSORTBYのASCを追加します。
問題は、変更がビューのoutoutに反映されないということです。 ビューを保存し、[開く]を選択した後、ソートが出力に表示されていないビューます。
だから何がここに起こっていますか?
解決
技術的には、VIEW
に並べ替え焼くことが可能であるが、それは非常に落胆しています。そのような観点から選択しながら、その代わりに、並べ替え適用されます。
Select ...
From MyView
Order By SortByCol ASC
あなたが本当に知りたいと思った場合は、は、ビューのソートの制限を周りに取得するにはTOPコマンドを使用することができ、(しかし、再び、私は強く、この反対をお勧めします):
Select TOP 100 PERCENT * Col1, Col2....
From Table1
Order By SortByCol ASC
他のヒント
に思えます:
また、SELECTの選択リストのTOP句がない限り、はSQL Server 2000では、ビュー定義のSELECT句の制限がありますが、SQL 2005およびSQL 2008 Aは、CREATE VIEWステートメントは、ORDER BY句を含めることはできませんステートメント。 ORDER BY句は、ビュー定義にTOP句によって返される行を決定するためにのみ使用されます。ビューが照会されたときにORDER BYは、クエリ自体に指定されていない限り、ORDER BY句は、注文した結果を保証するものではありません。
適用する必要がある修正プログラムもあります。その後、あなたは作品によって順番ことを確認してトップに100%を使用する必要があります。
HTH
の一般の、ビューをソートすることはできません。
(他の人が述べたように、それを行うためのハックがありますが、あなたは、ビジュアルクエリデザイナーを使用してではなく、SQLであなたのビュー定義を書いているので、そのハックを実装するのはおそらく難しいです。)
あなたが実際にあなたのビューを「変更」、あなただけのEMがのビューからを選択するために使用していたSELECTステートメントを変更しませんでした。ソートの設定は、ビュー定義内に保持されていません。
タブを閉じると、EMは、あなたが再びビューを開くときに、それはSQL Serverが決定したどんな順番に出てくる、そのビューのためのあなたの並べ替えの好みを覚えていません。