try_to_number işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 11.3 LTS ve üzeri

biçimlendirmesini fmtkullanarak VEYA exprNULL 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çimini exprbelirten 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 veya 9

    ile 9arasında 0 beklenen bir basamak belirtir. Ondalık noktaların solundaki A 0 , en az sayıda basamağı olması expr gerektiğini gösterir. Başta 9 , bu basamakların expr 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 fmtbelirtilen ondalık noktasının sağındaki basamak expr sayısı üst sınırını gösterir.

  • . veya D

    Ondalık noktasının konumunu belirtir.

    expr ondalık ayırıcı içermesi gerekmez.

  • , veya G

    Gruplandırma (binlik) ayırıcısının , konumunu belirtir. Her gruplandırma ayırıcısının solunda ve sağda bir 0 veya 9 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 veya MI

    için isteğe bağlı '+' veya '-' işaretinin ve yalnızca için MI'-' işaretinin Skonumunu 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 9veya içinde izin verilenler fmtdışı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