DECFLOAT_FORMAT

DECFLOAT_FORMAT 函數會根據使用指定格式之輸入字串的解譯傳回 DECFLOAT (34) 值。

讀取語法圖跳過視覺化語法圖 DECFLOAT_FORMAT ( 字串表示式 ,format-字串 )
字串表示式
傳回內建字串或圖形字串資料類型的表示式。 如果值是圖形資料類型,則在評估函數之前會隱含地強制轉型為 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