!--a11y-->

ORDER BY 句によって、選択の行が列の内容に従ってソートされます。
ORDER BY 句を使用しない場合は、選択の行の順序は不定となり、SELECT 命令を実行するたびに変化する可能性があります。任意の列 ( 一次キーの列でなくてもよい) で選択をソートし、列を静的または動的に指定することができます。
選択セットを一次キーによって昇順でソートするには、以下を使用します。
SELECT
<
行> *
...
... ORDER
BY PRIMARY KEY.
このソート方法は、SELECT 句でアスタリスク (*) を使用してすべての列を選択した場合にかぎり可能です。さらに、FROM 句で単一のデータベーステーブルを指定した場合のみ機能します。ビューも結合も、定義された一次キーではないため使用することはできません。
選択セットの行を任意の列によってソートするには、以下を使用します。
SELECT ...
...
ORDER BY
<s1> [ASCENDING|DESCENDING]
<s2> [ASCENDING|DESCENDING] ...
行は列 <s1> 、<s2> 、... によってソートされます。オプション ASCENDING または DESCENDING のいずれかを使用してソートの方向を設定します。デフォルトは昇順です。ソート順は、列を並べた順序によります。
SELECT 句で指定した列名またはそのエイリアス名を使用することができます。SELECT 句に登場した列だけを使用します。集合式のエイリアス名を使用することで、これらをソート項目として使用することができます。
ORDER BY 句の列を動的に指定するには、以下を使用します。
SELECT ...
...
ORDER BY
(<itab>).
ここで、<itab> は行データ型 C で最大桁数 72 文字の内部テーブルであり、列名<s1> <s2> .... を含みます。

DATA: BEGIN OF WA,
CARRID TYPE SFLIGHT-CARRID,
CONNID TYPE SFLIGHT-CONNID,
MIN TYPE
I,
END OF
WA.
SELECT CARRID CONNID MIN( SEATSOCC ) AS
MIN
INTO
CORRESPONDING FIELDS OF WA
FROM
SFLIGHT
GROUP BY CARRID CONNID
ORDER BY CARRID MIN DESCENDING.
WRITE: / WA-CARRID, WA-CONNID, WA-MIN.
ENDSELECT.
出力結果は以下のとおりです。

データベーステーブル SFLIGHT の行は、列 CARRID および CONNID によってグループ化され、各グループに対して列 SEATSOCC の最小値が検索されます。選択は、集合式のエイリアス名 MIN を使用して、CARRID によって昇順でソートされ、SEATSOCC の最小値によって降順でソートされます。