ASCENDING KEY-und DESCENDING KEY-Ausdrücke
Die Daten werden abhängig von dem angegebenen Schlüsselwort in aufsteigender oder absteigender Reihenfolge nach den in data-name-2enthaltenen Werten angeordnet. Die Datennamen werden in absteigender Reihenfolge ihrer Signifikanz aufgelistet.
Die Reihenfolge wird durch die Regeln für den Vergleich von Operanden bestimmt (siehe "Relation conditions "). Die Datenelemente ASCENDING KEY und DESCENDING KEY werden in OCCURS-Klauseln, den Anweisungen SEARCH ALL für eine binäre Suche des Tabellenelements und den SORT-Anweisungen im Format 2 verwendet. Alternativ können Schlüssel mit den SORT-Anweisungen im Format 2 angegeben werden.
- data-name-2
- Muss der Name des Subjekteintrags oder der Name eines dem Subjekteintrag untergeordneten Eintrags sein. data-name-2 kann qualifiziert werden.
Wenn data-name-2 den Betreffeintrag benennt, wird dieser gesamte Eintrag zum ASCENDING KEY oder DESCENDING KEY und ist der einzige Schlüssel, der für das Tabellenelement angegeben werden kann.
Wenn data-name-2 den Subjekteintrag nicht benennend, dann Datenname-2:
- Muss dem Subjekt des Tabelleneintrags selbst untergeordnet sein.
- Darf nicht einem anderen Eintrag, der eine Klausel OCCURS enthält, untergeordnet sein oder diesem folgen.
- Darf keine OCCURS-Klausel enthalten
data-name-2 dürfen keine untergeordneten Elemente enthalten, die Klauseln OCCURS DEPENDING ON enthalten.
Bei Angabe der Phrase ASCENDING KEY oder DESCENDING KEY gelten die folgenden Regeln:
- Schlüssel müssen in absteigender Reihenfolge ihrer Signifikanz aufgelistet werden.
- Die Gesamtzahl der Schlüssel für ein bestimmtes Tabellenelement darf 12 nicht überschreiten.
- Die Daten in der Tabelle müssen entsprechend der verwendeten Sortierfolge in aufsteigender oder absteigender Reihenfolge angeordnet werden.
- Der Schlüssel muss mit einer der folgenden Verwendungsmöglichkeiten beschrieben werden:
- BINÄR
- ANZEIGE
- DISPLAY-1
- NATIONAL
- UTF-8
- GEPACKT DEZIMAL
- RECHENLEISTUNG
- COMPUTATIONAL-1
- COMPUTATIONAL-2
- COMPUTATIONAL-3
- COMPUTATIONAL-4
- COMPUTATIONAL-5
- Ein Schlüssel, der mit der Verwendung NATIONAL beschrieben wird, kann eine der folgenden Kategorien haben: national, national editiert, numerisch editiert, numerisch oder extern Gleitkomma.
- Die Summe der Längen aller Schlüssel, die einem Tabellenelement zugeordnet sind, darf 256 nicht überschreiten.
- Wenn ein Schlüssel ohne Qualifikationsmerkmale angegeben wird und es sich nicht um einen eindeutigen Namen handelt, wird der Schlüssel implizit mit dem Subjekt der Klausel OCCURS und allen Qualifikationsmerkmalen des Subjekts der Klausel OCCURS qualifiziert.
Das folgende Beispiel veranschaulicht die Spezifikation von ASCENDING KEY-Datenelementen:
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.
Die Schlüssel für EMPLOYEE-TABLE sind diesem Eintrag untergeordnet und der Schlüssel für WEEK-RECORD ist diesem untergeordneten Eintrag untergeordnet.
Im vorherigen Beispiel müssen die Datensätze in EMPLOYEE-TABLE in aufsteigender Reihenfolge von WAGE-RATE und in aufsteigender Reihenfolge von EMPLOYEE-NO innerhalb von WAGE-RATE angeordnet werden. Datensätze in WOCHE-RECORD müssen in aufsteigender Reihenfolge von WOCHE-NO angeordnet werden. Ist dies nicht der Fall, sind die Ergebnisse einer Anweisung SEARCH ALL unvorhersehbar.