結果セットでの行のソートを指定する SELECT 節です。
Synopsis
ORDER BY ordering-item [ASC | DESC]{,ordering-item [ASC | DESC] ...}
コンマで区切られたリストとしてソートする、複数の行を指定することができます。ソートは最初にリストされている列で実行され、次に同じ列内の 2 番目の列のへと続きます。
列は、フィールド名、フィールドまたは定数の式、あるいは列番号で指定できます。最初の文字が数字の場合、Caché は列番号を指定しているとみなします。それ以外は、フィールド名または式を指定しているとみなされます。
ORDER BY Home_State,LName,FName
Caché 参照 (->) 構文は、例えば以下のようにフィールド名を指定するために使用できます。
列番号は、
SELECT 節リスト内の位置を参照します。列番号は、テーブル自体の列の位置を参照
しません。
整数や、またはいかなる番号でも、列番号を指定できます。標準的なトランケーション・ルールは、整数の解決に適用されます。例えば 1.99 は切捨てにより 1 となります。
ソートは照合シーケンス順序で実行されます。ソートは、作成時に列に指定された照合に基づいて実行されます。文字列の列の既定は %SQLUPPER です。式に対しては、既定照合は %EXACT です。
ORDER BY 節の %SQLSTRING(fieldxyz) などの式を使用して、既定をオーバーライドできます。
既定の昇順照合シーケンスは、空文字列 ('') よりも NULL を最小値とします。
ORDER BY は、空白スペースのみで構成される文字列と空文字列を区別しません。
列識別子の前の、オプションの ASC (昇順) や DESC (降順) キーワードで指定されたように、各列のソートは昇順または降順の照合順で指定できます。ASC や DESC が指定されていない場合、
ORDER BY は列を昇順でソートします。以下はその例です。
SELECT A,B,C,M,E,X,J
FROM LetterTable
ORDER BY 3,7 DESC,1 ASC
SELECT 節リスト内の 3 番目にリストされた項目 (C) のデータ値を昇順でソートします。この中では、7 番目にリストされた項目 (J) の値を降順でソートします。この中では、1 番目にリストされた項目 (A) の値を昇順でソートします。
以下の 2 つの例は、1 つの
ORDER BY 節内で列のソートに異なる方法を指定しています。以下の 2 つのクエリは同等です。1 番目はソート項目として列名を使用し、2 番目は列番号 (選択したフィールドのシーケンス番号) を使用しています。
SELECT Name,Age,Home_State
FROM Sample.Person
ORDER BY Home_State,Age DESC
SELECT Name,Age,Home_State
FROM Sample.Person
ORDER BY 3,2 DESC