ASCENDING/DESCENDING KEY 句
この句は、指定されたソート・キーに基づいてレコードが昇順または降順 (指定された句に従います) に処理されるように指定します。
- データ名-1
- データ名-1 は、ソートの基礎となる KEY データ項目を指定します。
各データ名は、ファイル名-1 に関連付けられたレコード内のデータ項目を識別しなければなりません。
次の規則が適用されます。
- 特定の KEY データ項目は、各入力ファイル内で物理的に同じ位置に存在し、同じデータ・フォーマットをもっていなければなりません。 ただし、同じデータ名を持つ必要はありません。
- ファイル名-1 が複数のレコード記述をもっている場合には、KEY データ項目は 1 つだけのレコード記述中で記述されている必要があります。
- ファイル名-1 に可変長レコードが含まれている場合には、 すべての KEY データ項目はレコードの最初の n 文字の位置に入っていなければなりません。 ここで n は、ファイル名-1 について指定された最大レコード・サイズです。
- KEY データ項目は、OCCURS 文節を含んではならず、また、OCCURS 文節を含む項目に従属してもなりません。
- KEY データ項目の全長が 2000 バイトを超えてはなりません。
- KEY データ項目を修飾することはできますが、添え字付けまたは指標付けすることはできません。
- KEY データ項目の位置は可変であってはなりません。
- SORT キーの中で可変長フィールドを可変長フィールドとして使用することはできません。 可変長フィールドは、ILE COBOLによってグループ項目に変換されます。 可変長フィールドはグループ項目に変換されるため、SORT キーの中で使用されると英数字データ項目として比較されます。
SORT ステートメントは、KEY データ項目を、それらの項目がどのように KEY 句に分割されているかにかかわりなく、重要度の高いものから順に左から右に列挙します。 左端のデータ名が主キーであり、次のデータ名がその次に重要度の高いキーというようになります。
ソート操作の方向は、キーワード ASCENDING または DESCENDING の指定によって、次のように異なります。
- ASCENDING を指定すると、最下位キー値から最上位キー値への順序となります。
- DESCENDING を指定すると、最上位キー値から最下位キー値への順序となります。
- KEY データ項目が英字、英数字、英数字編集、または数字編集である場合には、 キー値の順序は使用される照合順序によって決まります (COLLATING SEQUENCE 句を参照してください)。
- KEY データ項目が DBCS、DBCS 編集、または国別である場合には、 キー値の順序は DBCS 文字または国別文字の 16 進数値の 2 進数照合順序に基づきます。 COLLATING SEQUENCE 句は無視されます。
IBM Extension
IBM Extension
- KEY データ項目は、浮動小数点項目または日時項目にすることができます。
- KEY データ項目を参照変更することはできますが、添え字付けまたは指標付けすることはできません。
- KEY が外部浮動小数点項目である場合、コンパイラーはデータ項目を、数字データではなく文字データとして取り扱います。 レコードがソートされる順序は、使用される照合順序によって異なります。
- KEY データ項目が内部浮動小数点である場合、キー値の順序は数字の順序になります。
- KEY が日時項目である場合は、いくつかの形式だけが日付項目または時刻項目としてソートされます。 ILE COBOL は、IBM® i DDS より多くの日時形式をサポートします。 一般的に、IBM i DDS 形式に一致する ILE COBOL の日時形式は、日付項目または時刻項目としてソートされます。 その他のすべての形式は英数字項目として扱われ、その 16 進値に基づいてソートされます。
End of IBM Extension
- キーの比較は、比較条件のオペランドの比較に関する規則に従って実行されます (条件式の"比較条件"を参照してください)。