The TOTALORDER function returns an ordering for DECFLOAT values.
The TOTALORDER function returns a small integer value that indicates how expression-1 compares with expression-2.
Numeric comparison is exact, and the result is determined for finite operands as if range and precision were unlimited. Overflow or underflow cannot occur.
| -1 | if the first operand is lower in order compared to the second. |
| 0 | if both operands have the same order. |
| 1 | if the first operand is higher in order compared to the second. |
The ordering of the special values and finite numbers is as follows:
-NAN<-SNAN<-INFINITY<-0.10<-0.100<-0<0<0.100<0.10<INFINITY<SNAN<NAN
The result of the function is SMALLINT. If either argument can be null, the result can be null; if either argument is null, the result is the null value.
The following examples show the use of the TOTALORDER function to compare decimal floating-point values:
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