try_to_number函數

適用於:勾選“是”磚的SQL勾選“是”Databricks運行時10.5及以上

返回expr使用格式轉換為DECIMALfmt,或如果expr與格式不匹配。

語法

try_to_number (expr fmt) fmt {' [MI | S] [L | $] [0 | 9 | G  | , ] [...] [| d][0 | 9][…][l | $] [pr | mi | s] '}

參數

  • expr:表示數字的STRING表達式。expr可以包括前導空格或尾隨空格。

  • fmtSTRING字麵值,指定的期望格式expr

返回

一個DECIMAL(p, s)其中p是總位數(09),年代小數點後的位數,如果小數點後沒有數字,則為0。

fmt可以包含以下元素(不區分大小寫):

  • 09

    指定中間的期望數字0而且9.一個0小數點左邊表示expr至少要有這麼多數字。領先的9表明,expr可以省略這些數字。

    expr不能大於小數點左側所允許的位數。

    小數點右側的數字表示最大位數expr小數點的右邊可能有指定的fmt

  • D

    指定小數點的位置。

    expr不需要包含小數點。

  • G

    對象的位置分組(千)分隔符。一定有一個09在每個分組分隔符的左邊和右邊。expr必須匹配與數字大小相關的分組分隔符。

  • l

    屬性的位置貨幣符號。此字符隻能指定一次。

  • 年代心肌梗死

    指定可選的“+”或“-”符號的位置年代,“-”僅用於心肌梗死.此指令隻能指定一次。

  • 公關

    指定expr指示帶有環繞尖括號的負數(< 1 >).

如果expr包含除。以外的任何字符0通過9,或獲準進入的人士fmt,一個返回。

對於嚴格的語義使用to_number ()

例子

——格式要求:——*開頭的可選符號,——*後麵跟著美元符號,——*後麵跟著一個3到6位數字,——*數千個分隔符,——*小數點後兩位。>選擇try_to_number“——12345 .67”“年代999099 .99美元”);-1234567加號是可選的,小數也是可選的。>選擇try_to_number“345美元”“年代999099 .99美元”);34500—格式要求至少3位數字。>選擇to_number45美元的“年代999099 .99美元”);錯誤無效的數量—格式要求至少3位數字。>選擇try_to_number45美元的“年代999099 .99美元”);—格式要求至少3位數字>選擇try_to_number“045美元”“年代999099 .99美元”);4500——用括號表示負值>選擇try_to_number的< 1234 >“999999公關”);-1234