TOTALORDER スカラー関数
TOTALORDER 関数は、2 つの引数の比較の順序を示す -1、0、または 1 の SMALLINT 値を戻します。
スキーマは 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-expression1 が decfloat-expression2 と比較して順序が低い場合、-1
- decfloat-expression1 と decfloat-expression2 の両方が同じ順序の場合、0
- decfloat-expression1 が decfloat-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 