データのソート

SORT 基本コマンドを使用すれば、データをソートすることができます。このコマンドを使用すると、次のいずれかの方法でデータをソートすることができます。

  • 5 つまでの指定した列範囲を基準にする (CHAR、HEX、または LHEX 表示形式のみ)。
  • フィールド参照番号を指定して 5 つまでのフィールドを基準にする (TABL 表示形式のみ)。
  • データ・セットの KEY または SLOT NUMBER の順序にする (KSDS、VRDS、および RRDS VSAM データ・セット)。
注: SORT を使用するには、すべてのデータ・セット・レコードがメモリー常駐型でなければなりません。データ・セット全体が領域ストレージに収まらない場合、エラーが報告され、SORT の実行は打ち切られます。必要に応じて、データ・セット全体が入るように領域サイズを増やしてください。

データを昇順 (デフォルト) にソートするか、降順にソートするかを指定できます。また編集ではソートを除外レコードまたは非除外レコードだけに制限できます。

列範囲でソートするには、次のようにします。

  1. データを CHAR、HEX、または LHEX 形式で表示します。
  2. SORT 基本コマンドと、その後に列範囲値の 5 個までのペアを入力します。例:
    SORT 56 70 3 22
    56 から 70 までの範囲を最初のキーとし、3 から 22 までの範囲を 2 番目のキーとして使用し、データ・セットを昇順でソートします。

フィールド参照でソートするには、次のようにします。

  1. データを TABL 形式で表示します (テンプレートを指定しておく必要があります)。
  2. SORT 基本コマンドと、その後に 5 個までのフィールド参照を入力します。例:
    SORT #6 D #3 D
    フィールド #6 を最初のキーとし、フィールド #3 を 2 番目のキーとして使用し、データ・セットを降順でソートします。

KEY または SLOT NUMBER の順序にリストを復元するには、次のようにします (KSDS、VRDS、および RRDS VSAM データ・セットの場合)。

  1. KSDS、VRDS、または RRDS VSAM データ・セットをいずれかの表示形式で表示します。
  2. SORT コマンドを発行するか、レコードを移動または追加するか、「Key (キー)」フィールド (KSDS のみ) を編集することにより、KEY または SLOT NUMBER の順序と関係なくデータをソートします。レコードの編集が完了したら、SAVE コマンドを発行します。
  3. 例えば次のように、SORT コマンドと、その後に続けて KEY パラメーターを発行することにより、KEY または SLOT NUMBER の順序にデータを復元します。
    SORT KEY.
    フィールド #6 を最初のキーとし、フィールド #3 を 2 番目のキーとして使用し、データ・セットを降順でソートします。

例(X)

  • テンプレートを使用中でない場合は、次のようになります。
    SORT 23 36
    23 から 36 列目ですべてのレコードを昇順にソートします。
    SORT 77 80 D NX
    (編集のみ)77 から 80 列目で非除外レコード降順に (除外レコードが存在しなものとして) ソートします。
    SORT 77 80 D 23 36 3 21
    77 から 80 列目 (基本ソート・キー) ですべてのレコードを降順にソートしてから、23 から 36 列目 (2 次ソート・キー) で昇順に、さらに 3 から 21 列目 (マイナー・ソート・キー) で昇順にソートします。
    SORT KEY
    KSDS、VRDS、または RRDS VSAM データ・セットのレコードを元のキー順に復元します。

    RRDS および KSDS ファイルの場合には、SORT KEY の動作が異なります。RRDS ファイルでは VSAM スロット値がソート・キーとして使用されますが、KSDS ファイルではキー・フィールドが使用されます。RRDS ファイルに新しいレコードが追加されると、SORT KEY の実行時にファイルの終わりでソートされるように、そのレコードはスロット値を割り振られます。KSDS に追加された新規レコードは、新規キー値でソートされ、新規レコードは、ファイル内の適切な位置にソートされます。

  • テンプレートを使用している場合 (TABL 表示形式):
    SORT #7 D #6 #3
    フィールド参照番号 7 (基本ソート・キー) のフィールドですべてのレコードを降順にソートしてから、フィールド参照番号 6 (2 次ソート・キー) のフィールドで昇順に、さらにフィールド参照番号 3 (マイナー・ソート・キー) のフィールドで昇順にソートします。
    SORT #6 X
    (編集のみ)すべての除外レコードをフィールド参照番号 6 のフィールドで昇順に (非除外レコードが存在しないものとして) ソートします。

関連トピック