英数字比較は、2 つのオペランドの 1 バイト文字の値の比較です。
一方のオペランドのクラスが英数字でも英字でもない場合、そのオペランドは以下のように処理されます。
ZWB コンパイラー・オプションが有効なときには、整数オペランドの符号なし値は一時データ項目へ移動されます。NOZWB コンパイラー・オプションが指定されているときは、符号付き値が一時データ項目へ移動されます。ZWB (NOZWB) コンパイラー・オプションの 詳細は、「COBOL for Windows プログラミング・ガイド」を参照してください。
この後、比較は英数字カテゴリーの一時データ項目を 使用して続行されます。
比較に使用される照合シーケンスは、OBJECT-COMPUTER 段落内の PROGRAM COLLATING SEQUENCE 文節および COLLSEQ コンパイラー・オプションの 設定によって決定されます。
STANDARD-1、STANDARD-2、または EBCDIC の英字名を 使用して PROGRAM COLLATING SEQUENCE 文節を指定する場合、COLLSEQ コンパイラー・ オプションは無視されます。照合シーケンスは、ここで指定する英字名と関連付けられた 照合シーケンスになります。比較は、以下で説明するように、標準比較 (*** ページ) に関して進められます。
PROGRAM COLLATING SEQUENCE 文節を指定しないか、NATIVE の英字名を使用して指定する場合、比較方法は COLLSEQ コンパイラー・オプションによって決定されます。
リテラルによって定義された照合シーケンスを参照する英字名を使用して PROGRAM COLLATING SEQUENCE 文節を指定する場合、照合シーケンスは、ALPHABET 文節 に対して記述したように、指定されたリテラルの順序および COLLSEQ コンパイラー・オプションで 指定されたシーケンスによって決定されます。比較は、以下で説明するように、標準比較 (*** ページ) に関して進められます。
標準比較は、ロケールを基にしない比較です。標準比較の方法は、比較されるオペランドの長さが同じであるか異なるかによって変わります。
2 つのオペランドの長さが異なる場合は、短い方の オペランドの右側に適切なスペース文字を埋め、両方のオペランドの長さが等しくなるようにして比較が行われます。こうして比較は、長さが同じオペランドを比較するための規則に従って実行されます。
2 つのオペランドの長さが同じ場合は、オペランド内の 同じ位置にある文字同士が比較されます。比較は左端から開始され、途中で異なる文字が検出されるか、右端に到達するまで繰り返されます。対応する文字がすべて同じであった場合は、2 つのオペランドが等しいと判別されます。
オペランド内で最初に検出された異なる文字は、2 つのオペランドの関係を判別するために比較されます。より大きな照合値を持つ文字が入ったオペランドが、より大きなオペランドになります。