TOTALORDER
TOTALORDER 函數會傳回 DECFLOAT 值的排序。
TOTALORDER 函數會傳回一個小整數值,指出 expression-1 與 expression-2的比較。
- expression-1
- 傳回任何內建數值、字串或圖形字串資料類型的值的表示式。 如果引數不是 DECFLOAT (34) ,則會邏輯轉換為 DECFLOAT (34) 以進行處理。
- expression-2
- 傳回任何內建數值、字串或圖形字串資料類型的值的表示式。 如果引數不是 DECFLOAT (34) ,則會邏輯轉換為 DECFLOAT (34) 以進行處理。
數值比較是精確的,而結果是針對有限運算元來決定,就像範圍和精準度無限制一樣。 無法發生溢位或下溢。
TOTALORDER 根據 IEEE 754R的總順序述詞規則來決定排序,結果如下:
| -1 | 如果與第二個運算元相比,第一個運算元的順序較低。 |
| 0 | 如果兩個運算元的順序相同。 |
| 1 | 如果與第二個運算元相比,第一個運算元的順序更高。 |
特殊值和有限數的排序如下:
-NAN<-SNAN<-INFINITY<-0.10<-0.100<-0<0<0.100<0.10<INFINITY<SNAN<NAN
此函數的結果為 SMALLINT。 如果任一引數可以是空值,則結果可以是空值; 如果任一引數是空值,則結果是空值。
範例
下列範例顯示使用 TOTALORDER 函數來比較小數浮點數值:
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
