try_to_number
函數
適用於:磚的SQLDatabricks運行時10.5及以上
返回expr
使用格式轉換為DECIMALfmt
,或零
如果expr
與格式不匹配。
語法
try_to_number (expr fmt) fmt {' [MI | S] [L | $] [0 | 9 | G | , ] [...] [| d][0 | 9][…][l | $] [pr | mi | s] '}
返回
一個DECIMAL(p, s)其中p
是總位數(0
或9
),年代
小數點後的位數,如果小數點後沒有數字,則為0。
fmt
可以包含以下元素(不區分大小寫):
0
或9
指定中間的期望數字
0
而且9
.一個0
小數點左邊表示expr
至少要有這麼多數字。領先的9
表明,expr
可以省略這些數字。expr
不能大於小數點左側所允許的位數。小數點右側的數字表示最大位數
expr
小數點的右邊可能有指定的fmt
..
或D
指定小數點的位置。
expr
不需要包含小數點。,
或G
對象的位置
,
分組(千)分隔符。一定有一個0
或9
在每個分組分隔符的左邊和右邊。expr
必須匹配與數字大小相關的分組分隔符。l
或$
屬性的位置
$
貨幣符號。此字符隻能指定一次。年代
或心肌梗死
指定可選的“+”或“-”符號的位置
年代
,“-”僅用於心肌梗死
.此指令隻能指定一次。公關
指定
expr
指示帶有環繞尖括號的負數(< 1 >
).
如果expr
包含除。以外的任何字符0
通過9
,或獲準進入的人士fmt
,一個零
返回。
對於嚴格的語義使用to_number ().
例子
——格式要求:——*開頭的可選符號,——*後麵跟著美元符號,——*後麵跟著一個3到6位數字,——*數千個分隔符,——*小數點後兩位。>選擇try_to_number(“——12345 .67”,“年代999099 .99美元”);-12345.67加號是可選的,小數也是可選的。>選擇try_to_number(“345美元”,“年代999099 .99美元”);345.00—格式要求至少3位數字。>選擇to_number(45美元的,“年代999099 .99美元”);錯誤:無效的數量—格式要求至少3位數字。>選擇try_to_number(45美元的,“年代999099 .99美元”);零—格式要求至少3位數字>選擇try_to_number(“045美元”,“年代999099 .99美元”);45.00——用括號表示負值>選擇try_to_number(的< 1234 >,“999999公關”);-1234