TOTALORDER スカラー関数

TOTALORDER 関数は、2 つの引数の比較の順序を示す -1、0、または 1 の SMALLINT 値を戻します。

構文図を読む構文図をスキップするTOTALORDER(decfloat-expression1 ,decfloat-expression2)

スキーマは SYSIBM です。

decfloat-expression1
組み込み数値データ・タイプの値を戻す式。 引数が DECFLOAT(34) ではない場合、処理のために DECFLOAT(34) に論理的に変換されます。
decfloat-expression2
組み込み数値データ・タイプの値を戻す式。 引数が 10 進浮動小数点値ではない場合、処理のために DECFLOAT(34) に変換されます。

数値比較は正確であり、結果は範囲と精度が無制限であるかのように、有限のオペランドに対して判別されます。 オーバーフロー状態またはアンダーフロー状態が発生することはありません。

一方の値が DECFLOAT(16) で、他方が DECFLOAT(34) の場合、比較される前に DECFLOAT(16) 値は DECFLOAT(34) に変換されます。

TOTALORDER 関数のセマンティクスは、IEEE 754R の全体的順序述部の規則に基づいています。 TOTALORDER は以下の値を戻します。
  • decfloat-expression1decfloat-expression2 と比較して順序が低い場合、-1
  • decfloat-expression1decfloat-expression2 の両方が同じ順序の場合、0
  • decfloat-expression1decfloat-expression2 と比較して順序が高い場合、1
特殊値および有限数値の順序は、次のとおりです。
-NAN<-SNAN<-INFINITY<-0.10<-0.100<-0<0<0.100<0.10<INFINITY<SNAN<NAN

この関数の結果は SMALLINT 値となります。 引数のいずれかが NULL 値になる可能性がある場合、 結果も NULL 値になる可能性があります。 引数のいずれかが NULL 値の場合、その結果は NULL 値です。

以下の例は、TOTALORDER 関数を使った 10 進浮動小数点値の比較を示しています。
TOTALORDER(-INFINITY, -INFINITY) = 0 
TOTALORDER(DECFLOAT(-1.0), DECFLOAT(-1.0)) = 0 
TOTALORDER(DECFLOAT(-1.0), DECFLOAT(-1.00)) = -1 
TOTALORDER(DECFLOAT(-1.0), DECFLOAT(-0.5)) = -1 
TOTALORDER(DECFLOAT(-1.0), DECFLOAT(0.5)) = -1 
TOTALORDER(DECFLOAT(-1.0), INFINITY) = -1 
TOTALORDER(DECFLOAT(-1.0), SNAN) = -1 
TOTALORDER(DECFLOAT(-1.0), NAN) = -1 
TOTALORDER(NAN, DECFLOAT(-1.0)) = 1 
TOTALORDER(-NAN, -NAN) = 0 
TOTALORDER(-SNAN, -SNAN) = 0 
TOTALORDER(NAN, NAN) = 0 
TOTALORDER(SNAN, SNAN) = 0
TOTALORDER(-1.0, -1.0) = 0 
TOTALORDER(-1.0, -1.00) = -1 
TOTALORDER(-1.0, -0.5) = -1 
TOTALORDER(-1.0, 0.5) = -1 
TOTALORDER(-1.0, INFINITY) = -1 
TOTALORDER(-1.0, SNAN) = -1 
TOTALORDER(-1.0, NAN) = -1