to_number
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 11.3 LTS ve üzeri
biçimlendirmesini fmt
kullanarak ONDALıK'a dönüştürmeyi döndürürexpr
.
Söz dizimi
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Bağımsız değişkenler
expr
: Bir sayıyı temsil eden STRING ifadesi.expr
baştaki veya sondaki boşlukları içerebilir.fmt
: beklenen biçiminiexpr
belirten STRING değişmez değeri.
Döndürülenler
Ondalık(p, s), p
toplam basamak sayısıdır (0
veya 9
) ve s
ondalık ayırıcıdan sonraki basamak sayısıdır veya yoksa 0'dır.
fmt
aşağıdaki öğeleri içerebilir (büyük/küçük harfe duyarsız):
0
veya9
ile
9
arasında0
beklenen bir basamak belirtir. Ondalık noktaların solundaki A0
, en az sayıda basamağı olmasıexpr
gerektiğini gösterir. Başta9
, bu basamaklarınexpr
atlandığını gösterir.expr
ondalık ayırıcının solundaki basamak sayısının izin verdiği kadar büyük olmamalıdır.Ondalık ayırıcının sağındaki basamaklar, ondalık ayırıcının sağındaki basamakların
expr
en fazla belirtenin belirte olduğunufmt
gösterir..
veyaD
Ondalık noktasının konumunu belirtir.
expr
ondalık ayırıcı içermesi gerekmez.,
veyaG
Gruplandırma (binlik) ayırıcısının
,
konumunu belirtir. Her gruplandırma ayırıcısının solunda ve sağda bir0
veya9
olması gerekir.expr
, sayının boyutuyla ilgili gruplandırma ayırıcısı ile eşleşmelidir.L
veya$
Para birimi işaretinin
$
konumunu belirtir. Bu karakter yalnızca bir kez belirtilebilir.S
veyaMI
için isteğe bağlı '+' veya '-' işaretinin ve yalnızca için
MI
'-' işaretininS
konumunu belirtir. Bu yönerge yalnızca bir kez belirtilebilir.PR
Yalnızca biçim dizesinin sonunda izin verilir;
expr
, açılı köşeli ayraçlarla (<1>
) negatif bir sayıyı gösterir.
ile 9
dışında 0
karakterler veya içinde fmt
izin verilen karakterler varsa expr
bir hata döndürülür.
Geçersiz kullanım try_to_number() hatası yerine döndürmek NULL
içinexpr
.
Örnekler
-- The format expects:
-- * an optional sign at the beginning,
-- * followed by a dollar sign,
-- * followed by a number between 3 and 6 digits long,
-- * thousands separators,
-- * up to two dight beyond the decimal point.
> SELECT to_number('-$12,345.67', 'S$999,099.99');
-12345.67
-- Plus is optional, and so are fractional digits.
> SELECT to_number('$345', 'S$999,099.99');
345.00
-- The format requires at least three digits.
> SELECT to_number('$45', 'S$999,099.99');
Error: Invalid number
-- The format requires at least three digits.
> SELECT try_to_number('$45', 'S$999,099.99');
NULL
-- The format requires at least three digits
> SELECT to_number('$045', 'S$999,099.99');
45.00
-- Using brackets to denote negative values
> SELECT to_number('<1234>', '999999PR');
-1234