ORDER BY 句

クエリの結果得られたレコードを、指定した 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 句の条件に従ってレコードを抽出した後に値を並べ替えます。
field1field2 レコードの並べ替えに使用するフィールドの名前。

解説

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 番目以降のフィールドが並べ替えに使われます。

参照
ALL DISTINCT、DISTINCTROW、TOP 述語 (Microsoft Jet SQL) SELECT ステートメント (Microsoft Jet SQL)
FROM 句 (Microsoft Jet SQL) SELECT...INTO ステートメント (Microsoft Jet SQL)
GROUP BY 句 (Microsoft Jet SQL) SQL 集計関数 (SQL)
HAVING 句 (Microsoft Jet SQL) WHERE 句 (Microsoft Jet SQL)

使用例

ORDER BY 句の使用例