Aracılığıyla paylaş


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

Belirtilen biçimlendirmeyi expr kullanarak fmt'i DECIMAL'a dönüştürür veya NULL biçimiyle eşleşmiyorsa expr değerini döndürür.

Söz dizimi

try_to_number(expr, fmt)

fmt
  { ' [ MI | S ] [ L | $ ]
      [ 0 | 9 | G | , ] [...]
      [ . | D ]
      [ 0 | 9 ] [...]
      [ L | $ ] [ PR | MI | S ] ' }

Argümanlar

  • expr: Bir sayıyı temsil eden STRING ifadesi. expr baştaki veya sondaki boşlukları içerebilir.
  • fmt: expr öğesinin beklenen biçimini belirten bir string sabiti.

İadeler

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

    0 ile 9 arasında beklenen bir rakam belirtir. Ondalık noktaların solundaki A 0, expr en az o kadar basamağa sahip olması gerektiğini gösterir. Önde bulunan 9 , expr 'nin bu basamakları atlayabileceğini 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 noktasının sağındaki rakamlar, expr tarafından belirtilen, fmt ifadesinin ondalık noktasının sağında alabileceği maksimum basamak sayısını gösterir.

  • . veya D

    Ondalık noktasının konumunu belirtir.

    expr ondalık nokta 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

    S için isteğe bağlı bir '+' veya '-' işaretinin ve MI için yalnızca '-' işaretinin konumunu belirtir. Bu yönerge yalnızca bir kez belirtilebilir.

  • PR

    expr, açılı ayraçlar (<1>) kullanılarak negatif bir sayıyı belirtir.

expr yalnızca 0'den 9'ye kadar veya fmt içinde izin verilen karakterleri içermezse, bir NULL döndürülür.

Sıkı anlamsal kullanım için to_number()'ı kullanın.

Ö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');
 1.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');
 1.00

-- Using brackets to denote negative values
> SELECT try_to_number('<1234>', '999999PR');
 -1234