Compare_decfloat
COMPARE_DECFLOAT 函數會傳回 DECFLOAT 值的排序。
COMPARE_DECFLOAT 函數會傳回一個小整數值,指出 expression-1 與 expression-2的比較。
- expression-1
- 傳回任何內建數值、字串或圖形字串資料類型的值的表示式。 如果引數不是 DECFLOAT (34) ,則會邏輯轉換為 DECFLOAT (34) 以進行處理。
- expression-2
- 傳回任何內建數值、字串或圖形字串資料類型的值的表示式。 如果引數不是 DECFLOAT (34) ,則會邏輯轉換為 DECFLOAT (34) 以進行處理。
第一個引數會與第二個引數相互比較,並根據下列規則傳回結果。
- 如果兩個運算元都是有限的,則比較是代數,並遵循 DECFLOAT 減法的 rules 。 如果具有任一符號 且小數點右側具有相同零數目的差異正好為零,則 引數相等。 如果非零差異為正數,則第一個引數大於第二個引數。 如果非零差異為負數,則第一個引數小於第二個引數。
- 正零與負零比較相等。
- 正無限與正無限的比較。
- 正無限比大於任何有限數。
- 負無限會比較等於負無限。
- 負無限比小於任何有限數。
- 數值比較是精確的。 結果是針對有限運算元來決定,就像範圍和精準度無限制一樣。 無法發生溢位或下溢。
- 如果任一引數是 NaN 或 sNaN (正數或負數) ,則結果為未排序。
結果值設定如下:
| 0 | 如果引數完全相等。 |
| 1 | 如果 expression-1 小於 expression-2。 |
| 2 | 如果 expression-1 大於 expression-2。 |
| 3 | 如果引數未排序。 |
此函數的結果為 SMALLINT。 如果任一引數可以是空值,則結果可以是空值; 如果任一引數是空值,則結果是空值。
範例
下列範例示範使用函數時將傳回的值:
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