ソートマージ


5.5.21 シフトJISコード比較オプション(SJISオプション)

シフトJISコードの体系に従って,ソートキー,マージキー,集約キー,分割キー,および比較項目を文字単位で比較します。

キー,比較項目にシングルバイト文字(英数字,半角カナ),およびマルチバイト文字(漢字などの全角文字)が混在している場合,シングルバイト文字はマルチバイト文字より先に比較します。

注意事項
  • キー,または比較項目の属性に「c」を指定していない場合,このオプションは無効となります。

  • シフトJISコードのマルチバイト文字(2バイト文字)の範囲を次の表に示します。

    バイト位置

    範囲

    第1バイト(上位バイト)

    0x81〜0x9F,0xE0〜0xEF

    第2バイト(下位バイト)

    0x40〜0x7E,0x80〜0xFC

指定例
【例1】

-keyパラメタに指定されたソートキーを例題に,オプション有無のソート結果を次に示します。

入力レコードの+0〜5バイト目の長さ6バイトをソートキーとして昇順ソートします。網掛けはキーの範囲を示します。

[図データ]

[図データ]

SJISオプションなしの場合,キーデータは「JIS8単位コード体系」に従って,1バイト単位で比較します。ソート結果は,半角カナ文字より前にマルチバイト文字が配置されます。

[図データ]

SJISオプションありの場合,キーデータは「シフトJISコード」に従って,文字単位で比較します。シングルバイト文字については,上位バイトに0x00を付加した2バイト長に,また,文字数が足りない場合(レコード1,3,4)は,不足数分の2バイトの0x00を補正した内部表現で比較します。

ソート結果は,半角カナ文字より後ろにマルチバイト文字が配置されます。

【例2】

-csvkeyパラメタに指定されたソートキーを例題に,オプション有無のソート結果を次に示します。

入力レコードの第1セルの有効桁長6バイトをキーとして昇順ソートします。セルのデリミタ(区切り文字)は,コンマ(0x2C)とします。網掛けはキーの範囲を示します。

[図データ]

[図データ]

SJISオプションなしの場合,データは「JIS8単位コード体系」に従って,1バイト単位で比較します。ソート結果は,半角カナ文字より前にマルチバイト文字が配置されます。

[図データ]

SJISオプションありの場合,データは「シフトJISコード」に従って,文字単位で比較します。

シングルバイト文字については,上位バイトに0x00を付加した2バイト長に,また,文字数が足りない場合(レコード1,3,4)は,不足数分の2バイトの0x00を補正した内部表現で比較します。

ソート結果は,半角カナ文字より後ろにマルチバイト文字が配置されます。

(注)CSVデータの有効桁の調整について

実際に入力したキーデータに過不足がある場合,桁調整を行います。

  • データ長<有効桁数

    入力したデータの右側に空白を加え,有効バイト数に調整します。

  • データ長>有効桁数

    入力したデータの右側の桁あふれ部分を無視します。

詳細については,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。