to_number
函數
適用於:磚的SQLDatabricks運行時10.5及以上
返回expr
使用格式轉換為DECIMALfmt
.
語法
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
,返回錯誤。
返回零
而不是invalid的錯誤expr
使用try_to_number ().
例子
——格式要求:——*開頭的可選符號,——*後麵跟著美元符號,——*後麵跟著一個3到6位數字,——*數千個分隔符,——*小數點後兩位。>選擇to_number(“——12345 .67”,“年代999099 .99美元”);-12345.67加號是可選的,小數也是可選的。>選擇to_number(“345美元”,“年代999099 .99美元”);345.00—格式要求至少3位數字。>選擇to_number(45美元的,“年代999099 .99美元”);錯誤:無效的數量—格式要求至少3位數字。>選擇try_to_number(45美元的,“年代999099 .99美元”);零—格式要求至少3位數字>選擇to_number(“045美元”,“年代999099 .99美元”);45.00——用括號表示負值>選擇to_number(的< 1234 >,“999999公關”);-1234