行の並べ替え (Visual Database Tools)
適用対象:SQL Server
クエリ結果の行を並べ替えることができます。 つまり、結果セット内の行の順序を決定する値を持つ特定の列または列のセットに名前を付けることができます。
手記
並べ替え順序は、列の照合順序によって部分的に決定されます。 照合順序は、[照合順序] ダイアログ ボックスで変更できます。
クエリ結果を並べ替えるには、いくつかの方法があります。
行を昇順または降順に並べ替えることができます 既定では、SQL は並べ替え列を使用して行を昇順に配置します。 たとえば、書籍のタイトルを昇順で並べ替えるには、行を price 列で並べ替えるだけです。 結果の SQL は次のようになります。
SELECT * FROM titles ORDER BY price
一方、より高価な書籍を最初にタイトルに配置する場合は、最も高い順序を明示的に指定できます。 つまり、結果行は価格列の降順の値で配置する必要があることを示します。 結果の SQL は次のようになります。
SELECT * FROM titles ORDER BY price DESC
複数の列で並べ替えることができます。たとえば、作成者ごとに 1 行の結果セットを作成し、最初に州別に並べ替え、次に市区町村別に並べ替えることができます。 結果の SQL は次のようになります。
SELECT * FROM authors ORDER BY state, city
結果セットに表示されない列で並べ替えることができます。たとえば、価格が表示されていなくても、最初に最も高価なタイトルを指定して結果セットを作成できます。 結果の SQL は次のようになります。
SELECT title_id, title FROM titles ORDER BY price DESC
派生列で並べ替えることができます。たとえば、各行に書籍のタイトルが含まれる結果セットを作成できます。この結果セットには、コピーごとに最高の使用料を支払う書籍が最初に表示されます。 結果の SQL は次のようになります。
SELECT title, price * royalty / 100 as royalty_per_unit FROM titles ORDER BY royalty_per_unit DESC
(各書籍がコピーごとに獲得する使用料を計算するための数式が強調されています。
派生列を計算するには、前の例のように SQL 構文を使用するか、スカラー値を返すユーザー定義関数を使用できます。 ユーザー定義関数の詳細については、SQL Server のドキュメントを参照してください。
グループ化された行を並べ替えることができます。 たとえば、各行が市区町村を記述し、その都市の著者数を含む結果セットを作成することができます。そして、多くの著者を含む都市が最初に表示されます。 結果の SQL は次のようになります。
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state ORDER BY COUNT(*) DESC, state
クエリでは、セカンダリ並べ替え列として
state
が使用されていることに注意してください。 したがって、2 つの州の作成者数が同じ場合、それらの状態はアルファベット順に表示されます。国際データ を使用して並べ替えることができます。列の既定の規則とは異なる照合規則を使用して列を並べ替えることができます。 たとえば、Jaime Patiño によってすべての書籍タイトルを取得するクエリを記述できます。 タイトルをアルファベット順に表示するには、タイトル列にスペイン語の照合順序を使用します。 結果の SQL は次のようになります。
SELECT title FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id WHERE au_fname = 'Jaime' AND au_lname = 'Patiño' ORDER BY title COLLATE SQL_Spanish_Pref_CP1_CI_AS
関連項目
クエリ結果の並べ替えとグループ化 (Visual Database Tools)
クエリとビューの設計方法に関するトピック (Visual Database Tools)