数字と非数字の比較の規則は、次の表にあります。 オペランドのいずれかがグループ項目の場合、非数字比較の規則が適用されます。
表 21 は、非数字オペランド と比較できる項目を要約したものです。
表 22 は、数字オペランド と比較できる項目を要約したものです。
表 21 および 表 22 で使用されている記号は次のとおりです。
第 1 オペランド | 第 2 オペランド | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GR | AL | AN | ANE | NE | FC1 | NNL | DB | DBE | DA | TI | TS | NL | |
非数字オペランド | |||||||||||||
グループ (GR) | NN | NN | NN | NN | NN | NN | NN |
|
| NN | NN | NN | NN |
英字 (AL) | NN | NN | NN | NN | NN | NN | NN |
|
|
|
|
| NLN |
英数字 (AN) | NN | NN | NN | NN | NN | NN | NN |
|
| NN | NN | NN | NLN |
英数字編集 (ANE) | NN | NN | NN | NN | NN | NN | NN |
|
| NN | NN | NN |
|
数字編集 (NE) | NN | NN | NN | NN | NN | NN | NN |
|
| NU | NU | NU |
|
表意定数 (FC1) | NN | NN | NN | NN | NN |
|
|
|
|
|
|
| NL4 |
非数字リテラル (NNL) | NN | NN | NN | NN | NN |
|
|
|
| NN | NN | NN | NLN |
DBCS 項目 (DB)3 |
|
|
|
|
|
|
| NN | NN |
|
|
| NLN |
DBCS 編集項目 (DBE)3 |
|
|
|
|
|
|
| NN | NN |
|
|
|
|
日付 (DA)3 | NN |
| NN | NN | NU |
| NN |
|
| DT |
| DT |
|
時刻 (TI)3 | NN |
| NN | NN | NU |
| NN |
|
|
| DT | DT |
|
タイム・スタンプ (TS)3 | NN |
| NN | NN | NU |
| NN |
|
| DT | DT | DT |
|
国別 (NL) | NN | NLN | NLN |
|
| NL4 | NLN | NLN |
|
|
|
| NL |
数字オペランド | |||||||||||||
表意定数 ZERO (ZR) | NN | NN | NN | NN | NN |
|
|
|
|
|
|
|
|
数字リテラル (NL) | NN | NN | NN | NN | NN |
|
|
|
| NU | NU | NU |
|
外部 10 進数 (ED)2 | NN | NN | NN | NN | NN | NN | NN |
|
| NU | NU | NU |
|
2 進数 (BI) |
|
|
|
|
|
|
|
|
| NU | NU | NU |
|
算術式 (AE) |
|
|
|
|
|
|
|
|
| NU | NU | NU |
|
ブール・データ項目またはブール・リテラル (BO)3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
内部 10 進数 (ID) |
|
|
|
|
|
|
|
|
| NU | NU | NU |
|
内部浮動小数点 (IFP)3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
外部浮動小数点 (EFP)3 | NN3 | NN3 | NN3 | NN3 | NN3 | NN3 | NN3 |
|
|
|
|
|
|
浮動小数点リテラル (FPL)3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
第 1 オペランド | 第 2 オペランド | |||||||||
ZR | NL | ED | BI | AE | BO | ID | IFP3 | EFP3 | FPL3 | |
非数字オペランド | ||||||||||
グループ (GR) | NN | NN | NN2 |
|
|
|
|
| NN3 |
|
英字 (AL) | NN | NN | NN2 |
|
|
|
|
| NN3 |
|
英数字 (AN) | NN | NN | NN2 |
|
|
|
|
| NN3 |
|
英数字編集 (ANE) | NN | NN | NN2 |
|
|
|
|
| NN3 |
|
数字編集 (NE) | NN | NN | NN2 |
|
|
|
|
| NN3 |
|
表意定数 (FC1) |
|
| NN2 |
|
|
|
|
| NN3 |
|
非数字リテラル (NNL) |
|
| NN2 |
|
|
|
|
| NN3 |
|
日付 (DA) |
| NU | NU2 | NU | NU |
| NU |
|
|
|
時刻 (TI) |
| NU | NU2 | NU | NU |
| NU |
|
|
|
タイム・スタンプ (TS) |
| NU | NU2 | NU | NU |
| NU |
|
|
|
数字オペランド | ||||||||||
表意定数 ZERO (ZR) |
|
| NU | NU | NU | NU3 | NU | NU3 | NU3 |
|
数字リテラル (NL) |
|
| NU | NU | NU |
| NU | NU3 | NU3 |
|
外部 10 進数 (ED) | NU | NU | NU | NU | NU |
| NU | NU3 | NU3 | NU3 |
2 進数 (BI) | NU | NU | NU | NU | NU |
| NU | NU3 | NU3 | NU3 |
算術式 (AE) | NU | NU | NU | NU | NU |
| NU | NU3 | NU3 | NU3 |
ブール・データ項目またはブール・リテラル (BO)3 | NU3 |
|
|
|
| NU3 |
|
|
|
|
内部 10 進数 (ID) | NU | NU | NU | NU | NU |
| NU | NU3 | NU3 | NU3 |
内部浮動小数点 (IFP)3 | NU3 | NU3 | NU3 | NU3 | NU3 |
| NU3 | NU3 | NU3 | NU3 |
外部浮動小数点 (EFP)3 | NU3 | NU3 | NU3 | NU3 | NU3 |
| NU3 | NU3 | NU3 | NU3 |
浮動小数点リテラル (FPL)3 |
|
| NU3 | NU3 | NU3 |
| NU3 | NU3 | NU3 |
|
数字オペランドの代数値が比較されます。
非数字オペランドの比較は、使用されている文字セットの照合順序 について行われます。
PROGRAM COLLATING SEQUENCE 文節が OBJECT-COMPUTER 段落に指定されている場合、SPECIAL-NAMES 段落の英字名文節に関係づけられている照合順序が使用されます。 そうでなければ、固有 EBCDIC 文字セットが使用されます。
各オペランドのサイズは、そのオペランドの文字の合計数です。 以下の 2 つの場合が考えられます。
対応する文字どうしが最後まですべて等しければ、両オペランドは等しいと見なされます。
等しくない文字の組が検出されると、それら 2 つの文字の照合順序での相対位置が判定されます。 照合順序での位置が高い方の文字を含むオペランドが、より大きいオペランドであると見なされます。
上記で説明した非数字比較の規則が適用されます。 さらに、数字オペランドと非数字オペランドを比較するときは、その USAGE は同じでなければなりません。 そのような比較においては、以下の規則も適用されます。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
いずれかのオペランドがグループ項目であれば、上述の非数字比較の規則が適用されます。 そのほかに、次の規則があります。
(MOVE ステートメントを参照してください。)
+----------------------------------IBM 拡張----------------------------------+
ブール・オペランドは、[NOT] EQUAL TO 比較条件においてのみ使用されます。 ブール・オペランドは、非ブール・オペランドと比較することはできません。 ブール・データ項目およびリテラルは、1 文字位置の長さでなければなりません。 2 つのブール・オペランドが共にブール 1 またはブール 0 の値を持つ場合には、この 2 つのオペランドは同等です。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
DBCS または DBCS 編集オペランドの比較の規則は、非数字オペランドの比較の規則と同じです。 その比較は、DBCS 文字の 16 進数値の 2 進数照合順序に基づいています。 OBJECT-COMPUTER 段落の PROGRAM COLLATING 文節は、この比較には影響を及ぼしません。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
クラスが NATIONAL であるオペランドは、クラスが NATIONAL である別のオペランドと比較することができます。 このような比較の結果は、UCS-2 文字セットの 16 進数値の 2 進数照合順序に基づきます。 2 つのオペランドのサイズが異なる場合、短い方のオペランドの右側が、埋め込み文字 (Padding Character) コンパイル・オプションまたは等価の処理オプションに指定されている埋め込み文字によって埋められます。 デフォルトは UCS-2 の 2 バイト文字のスペース文字 (NX"3000") です。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
クラスが NATIONAL であるオペランドは、英字データ項目、英数字データ項目、DBCS データ項目、非数字リテラル、または DBCS リテラルと比較することができます。
国別項目以外のデータ項目またはリテラルは、MOVE ステートメントの規則に従って、クラスが国別で、同じ論理的な長さである基本データ項目に移動された場合と同様に処理されます。 それから、変換後の値が国別オペランドと比較されます。 項目の長さが異なる場合、短い方の項目の右側が、埋め込み文字 (Padding Character) コンパイル・オプションまたは等価の処理オプションに指定されている埋め込み文字によって埋められます。 デフォルトは、非国別オペランドが 1 バイト文字の項目である場合には、UCS-2 の 1 バイト文字のスペース文字 であり、非国別オペランドが 2 バイト文字の項目である場合 には、UCS-2 の 2 バイト文字のスペース文字 (NX"3000") です。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
日時クラスの項目と非数字オペランド (数字編集オペランドを除く) との比較 の場合は、日時項目は非数字項目であるかのように扱われます。
日時クラスの項目と数字編集オペランドまたは数字オペランドとの比較時には、日時項目は編集解除されます。 編集解除の結果、この項目は 1 つの整数値となります。 その後、この整数値は他のオペランドと数字として比較されます。
1 つの日時項目と別の日時項目との比較時には、これらの項目は最初に共通の日付形式、時刻形式、またはタイム・スタンプ形式に変換されてから比較されます。 形式リテラルの一部であるが変換指定子ではない文字 (たとえば / または - などの文字) は、日時比較にまったく影響を及ぼしません。
日時項目とタイム・スタンプ項目との比較時には、タイム・スタンプの日付の部分だけが考慮されます。 時刻項目とタイム・スタンプ項目との比較時には、タイム・スタンプの時刻の部分だけが考慮されます。
+------------------------------End of IBM 拡張-------------------------------+
指標名または指標データ項目 (またはその両方) を含んだ比較は、次の規則に従います。
+----------------------------------IBM 拡張----------------------------------+
算術式を使用できる場合であれば整数関数が使用できるため、この拡張によって、指標名と整数または数字関数を比較できます。
+------------------------------End of IBM 拡張-------------------------------+
表 23
は、指標名および指標データ項目に関する有効な比較を示しています。
比較される オペランド | 指標名 | 指標データ項目 | データ名 | リテラル | 算術式 |
指標名 | オカレンス番号を比較 | 変換せずに比較 | オカレンス番号とデータ名を比較 | オカレンス番号とリテラルを比較 | オカレンス番号と算術式を比較 |
指標データ項目 | 変換せずに比較 | 変換せずに比較 | 使用不可 | 使用不可 | 使用不可 |