データは、データ名-2 データ名-2 に含まれる値に従い、 指定されたキーワードに応じて昇順または降順に並べられます。 データ名は、レベルが高いものから順に指定します。
順序は、オペランドの比較の規則に従って決められます (比較条件を参照)。ASCENDING KEY および DESCENDING KEY データ項目は、 OCCURS 文節とテーブル・エレメントの二分探索を実行する SEARCH ALL ステートメントで使用されます。
データ名-2 がサブジェクト項目を指定している場合、その項目の全体が ASCENDING KEY または DESCENDING KEY となり、そのテーブル・エレメントに対して指定できる唯一のキーとなります。
データ名-2 がサブジェクト項目を指定しない場合、データ名-2 は次のようになります。
データ名-2 では、OCCURS DEPENDING ON 文節を含む従属項目は使用できません。
ASCENDING KEY 句または DESCENDING KEY 句を指定する場合、次の規則が適用されます。
次の例は、ASCENDING KEY データ項目の指定方法を示したものです。
WORKING-STORAGE SECTION.
01 TABLE-RECORD.
05 EMPLOYEE-TABLE OCCURS 100 TIMES
ASCENDING KEY IS WAGE-RATE EMPLOYEE-NO
INDEXED BY A, B.
10 EMPLOYEE-NAME PIC X(20).
10 EMPLOYEE-NO PIC 9(6).
10 WAGE-RATE PIC 9999V99.
10 WEEK-RECORD OCCURS 52 TIMES
ASCENDING KEY IS WEEK-NO INDEXED BY C.
15 WEEK-NO PIC 99.
15 AUTHORIZED-ABSENCES PIC 9.
15 UNAUTHORIZED-ABSENCES PIC 9.
15 LATE-ARRIVALS PIC 9.
EMPLOYEE-TABLE のキーは、その項目に従属し、WEEK-RECORD のキーは、その従属項目へ従属しています。
上記の例では、EMPLOYEE-TABLE の中のレコードは、WAGE-RATE の昇順に並べ、 また WAGE-RATE の中では EMPLOYEE-NO の昇順に並べなければなりません。 WEEK-RECORD の中のレコードは、WEEK-NO の昇順に並べなければなりません。 そのように並んでいない場合には、SEARCH ALL ステートメント実行の結果は予測できません。