DECFLOAT_FORMAT
DECFLOAT_FORMAT 函數會根據使用指定格式之輸入字串的解譯傳回 DECFLOAT (34) 值。
- 字串表示式
- 傳回內建字串或圖形字串資料類型的表示式。 如果值是圖形資料類型,則在評估函數之前會隱含地強制轉型為 VARCHAR。 從字串中移除前導及尾端空白。 如果未指定 format-string ,則產生的子字串必須符合形成 SQL 整數、十進位、浮點或十進位浮點常數的規則,且在除去前導及尾端空白之後不大於 63 個字元。 否則,產生的子字串必須包含對應於 format-string所指定格式的數字元件。
- format-string
- 傳回內建字串或圖形字串資料類型的表示式。 如果值是圖形資料類型,則在評估函數之前會隱含地強制轉型為 VARCHAR。 format-string 包含一個範本,說明如何解譯 string-expression 以轉換為 DECFLOAT 值。 根據下列規則, format-string 必須包含所列出格式元素的有效組合:
- 至少必須指定一個 '0' 或 '9' 格式元素。
- 只能指定一次符號格式元素 ('S '、'MI'、'PR ')。
- 小數點格式元素只能指定一次。
- 必須以大寫指定英文字母格式元素。
- 字首格式元素只能指定在格式字串的開頭,在任何不是字首格式元素的格式元素之前。 當指定多個字首格式元素時,可以依任何順序來指定它們。
- 字尾格式元素只能在格式字串的結尾,指定在任何不是字尾格式元素的格式元素之後。 當指定多個字尾格式元素時,可以依任何順序來指定它們。
- 逗點或 G 格式元素可以是第一個不是字首格式元素的格式元素。 可以有任何數目的逗點或 G 格式元素。
- 格式元素之間不能指定空白。 可指定前導及尾端空白,但不予處理。
表 1. DECFLOAT_FORMAT 函數的格式元素 格式元素 說明 0 或 9 代表可在指定位置併入的數字。 這兩個格式元素具有相同的意義。 S 字首: 如果 string-expression 代表負數,則預期在指定的位置有前導減號 (−)。 如果 string-expression 代表正數,則可以在指定的位置併入前導加號 (+) 或前導空白。 $ 字首: 預期在指定的位置有前導錢幣符號 ($)。 中間名 字尾: 如果 string-expression 代表負數,則預期在指定的位置有尾端減號 (−)。 如果 string-expression 代表正數,則可以在指定的位置併入尾端空白。 採購申請 Suffix: If 字串表示式 represents a negative number, a leading less than character (<) and a trailing greater than character (>) are expected. 如果 string-expression 代表正數,則可以包括前導空白及尾端空白。 , 指定逗點的預期位置。 此逗點用作群組分隔字元。 . 指定期間的預期位置。 此期間用作小數點。 L 字首或字尾: 指定預期當地貨幣符號位於指定的位置。 貨幣符號擷取自檔案庫 *LIBL 中訊息檔 QCPFMSG 中的訊息 CPX8416 。 D 指定在指定的位置預期區域小數點字元。 十進位字元擷取自檔案庫 *LIBL 中訊息檔 QCPFMSG 中的訊息 CPX8416 。 G 指定區域群組分隔字元預期位於指定的位置。 如果從檔案庫 *LIBL 訊息檔 QCPFMSG 中的訊息 CPX8416 所擷取的區域十進位字元是句點,則群組分隔字元將會是逗點。 如果區域十進位字元是逗點,則群組分隔字元會是句點。
結果是 DECFLOAT (34)。 如果 DECFLOAT_FORMAT 函數的任何引數可以是空值,則結果可以是空值; 如果任何引數是空值,則結果是空值。
附註
替代語法: TO_NUMBER 是 DECFLOAT_FORMAT 的同義字。
範例
| 範例 | 結果 |
|---|---|
| DECFLOAT_FORMAT ('123.45') | 123.45 |
| DECFLOAT_FORMAT ('-123456.78') | -123456.78 |
| DECFLOAT_FORMAT ('+123456.78') | 123456.78 |
| DECFLOAT_FORMAT ('1.23E4') | 12300 |
| DECFLOAT_FORMAT ('123.4' , '9999.99') | 123.40 |
| DECFLOAT_FORMAT ('001,234' , '000,000') | 1 2 3 4 |
| DECFLOAT_FORMAT ('1234' , '9999MI') | 1 2 3 4 |
| DECFLOAT_FORMAT ('1234-' , '9999MI') | -1234 |
| DECFLOAT_FORMAT ('+ 1234' , 'S9999') | 1 2 3 4 |
| DECFLOAT_FORMAT ('-1234' , 'S9999') | -1234 |
| DECFLOAT_FORMAT (' 1234 ','9999PR') | 1 2 3 4 |
| DECFLOAT_FORMAT( '<1234>', '9999PR' ) | -1234 |
| DECFLOAT_FORMAT ('$123 ,456.78' , '$999 ,999.99') | 123456.78 |
