クエリの結果得られたレコードを、指定した 1 つまたは複数のフィールドで昇順または降順に並べ替えます。
SELECT fieldlist
FROM table
WHERE selectcriteria
[ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]
ORDER BY 句を使用する SELECT ステートメントには、次の指定項目があります。
指定項目 | 内容 |
---|---|
fieldlist | 取得する 1 つ以上のフィールドの名前。フィールド名の別名、SQL 集計関数、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP) などの SELECT ステートメント オプションも指定できます。 |
table | 取得するデータのあるテーブルの名前。詳細については、FROM 句を参照してください。 |
selectcriteria | 抽出条件。ステートメントに WHERE 句が含まれている場合、Microsoft Jet データベース エンジンは WHERE 句の条件に従ってレコードを抽出した後に値を並べ替えます。 |
field1、field2 | レコードの並べ替えに使用するフィールドの名前。 |
ORDER BY 句は省略可能です。ただし、データを並べ替えて表示する場合は ORDER BY 句が必要です。
並べ替え順序を指定しない場合は、昇順 (A 〜 Z、0 〜 9、あ〜ん) になります。次の例は、どちらも社員の名前を五十音順に並べ替えます。
SELECT
氏名,
部署
FROM
社員
ORDER BY
氏名;
SELECT
氏名,
部署
FROM
社員
ORDER BY
フリガナ ASC;
降順 (Z 〜 A、9 〜 0、ん〜あ) で並べ替えるには、並べ替える各フィールドの後に予約語 DESC を記述します。次の例では、並べ替えるフィールドとして "給与" フィールドを選択し、降順に並べ替えています。
SELECT
氏名,
給与
FROM
社員
ORDER BY
給与 DESC,
フリガナ;
ORDER BY 句でメモ型 (Memo) または OLE オブジェクト型 (OLE Object) データのあるフィールドを指定した場合は、エラーになります。Microsoft Jet データベース エンジンは、メモ型 (Memo) および OLE オブジェクト型 (OLE Object) のフィールドを並べ替えることはできません。
通常は、ORDER BY 句は SQL ステートメントの一番最後に記述します。
ORDER BY 句にはさらに複数のフィールドを指定することもできます。この場合、レコードの並べ替えは、まず ORDER BY 句の直後に記述された 1 番目のフィールドを使用して行われます。次に、1 番目のフィールドと同じ値を持つレコードが 2 番目に記述されたフィールドの値によって並べ替えられます。以下同様に、3 番目以降のフィールドが並べ替えに使われます。