try_to_number
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 11.3 LTS ve üzeri
biçimlendirmesini fmt
kullanarak VEYA expr
NULL
biçimiyle eşleşmiyorsa ONDALıK'a dönüştürmeyi döndürürexpr
.
Söz dizimi
try_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 ondalık ayırıcıdan sonra basamak 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 değerinin sağındaki basamaklar, tarafından
fmt
belirtilen ondalık noktasının sağındaki basamakexpr
sayısı üst sınırını 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
expr
Açılı ayraçlar (<1>
) kaydırmalı negatif bir sayıyı gösterir.
expr
aracılığıyla 9
veya içinde izin verilenler fmt
dışında 0
herhangi bir karakter içeriyorsa, bir NULL
döndürülür.
Katı anlamsal kullanım to_number() için.
Ö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 try_to_number('-$12,345.67', 'S$999,099.99');
-12345.67
-- Plus is optional, and so are fractional digits.
> SELECT try_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 try_to_number('$045', 'S$999,099.99');
45.00
-- Using brackets to denote negative values
> SELECT try_to_number('<1234>', '999999PR');
-1234