COMPARE_DECFLOAT

COMPARE_DECFLOAT 関数は DECFLOAT 値の順序付けを返します。

構文図を読む構文図をスキップする
>>-COMPARE_DECFLOAT--(--expression-1--,--expression-2--)-------><

COMPARE_DECFLOAT 関数は、expression-1expression-2 の比較方法を示す短精度整数値を戻します。

expression-1
任意の組み込み数値、文字ストリング、 またはグラフィック・ストリングのデータ・タイプの値を戻す式。 引数が DECFLOAT(34) でない場合、その引数は処理のために DECFLOAT(34) に論理的に変換されます。
expression-2
任意の組み込み数値、文字ストリング、 またはグラフィック・ストリングのデータ・タイプの値を戻す式。 引数が DECFLOAT(34) でない場合、その引数は処理のために DECFLOAT(34) に論理的に変換されます。

最初の引数が 2 番目の引数と比較され、結果は以下の規則に従って返されます。

  • 両方のオペランドが有限の場合、比較は代数の場合と同様に行われ、DECFLOAT の減算の規則に従います。差がいずれかの符号を持つゼロで、小数点以下のゼロの数が同じである場合、それらの引数は等しくなります。差がゼロ以外で正の場合、最初の引数は 2 番目の引数より大きくなります。 差がゼロ以外で負の場合、最初の引数は 2 番目の引数より小さくなります。
  • 正のゼロおよび負のゼロは、比較により等しいと判断されます。
  • 正の無限大は、比較により負の無限大と等しくなります。
  • 正の無限大は、比較によりどの有限数より大きくなります。
  • 負の無限大は、比較により負の無限大と等しくなります。
  • 負の無限大は、比較によりどの有限数より小さくなります。
  • 数値の比較は正確です。有限オペランドの結果は、範囲と精度が無制限の場合と同様に求められます。 オーバーフローまたはアンダーフローが起こってはなりません。
  • いずれかの引数が NaN または sNaN (正または負) の場合、結果は順序付け不能となります。

結果の値は次のように設定されます。

関数の結果は SMALLINT になります。引数のどちらかが NULL になる可能性がある場合は、結果も NULL になる可能性が あります。引数のどちらかが NULL である場合は、結果は NULL 値になります。

次の例に、この関数が使用されたときに返される値を示します。

     COMPARE_DECFLOAT (DECFLOAT(2.17),  DECFLOAT(2.17))   =  0
     COMPARE_DECFLOAT (DECFLOAT(2.17),  DECFLOAT(2.170))  =  2
     COMPARE_DECFLOAT (DECFLOAT(2.170), DECFLOAT(2.17))   =  1
     COMPARE_DECFLOAT (DECFLOAT(2.17),  DECFLOAT(0.0))    =  2
     COMPARE_DECFLOAT (INFINITY,        INFINITY)         =  0
     COMPARE_DECFLOAT (INFINITY,        -INFINITY)        =  2
     COMPARE_DECFLOAT (DECFLOAT(-2),    INFINITY)         =  1
     COMPARE_DECFLOAT (NAN,             NAN)              =  3
     COMPARE_DECFLOAT (DECFLOAT(-0.1),  SNAN)             =  3