Aracılığıyla paylaş


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

ONDALıK'a dönüşümü expr kullanarak fmt biçimlendirmesi ile döndürür.

Söz dizimi

to_number(expr, fmt)

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

Tartışmalar

  • expr: Bir sayıyı temsil eden STRING ifadesi. expr baştaki veya sondaki boşlukları içerebilir.
  • fmt: expr'in beklenen biçimini belirten bir dizgi değişmez değeri.

İ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 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 basamağı belirtir. Ondalık noktaların solundaki bir 0, expr'in en azından bu kadar basamağa sahip olması gerektiğini gösterir. Baştaki 9 , expr bu basamakları atlayabilir anlamına gelir.

    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ıdan sonraki basamaklar, expr'in ondalık ayırıcının sağında, fmt ile belirtilenden daha fazla basamağa sahip olabileceğini gösterir.

  • . veya D

    Ondalık noktasının konumunu belirtir.

    expr ondalık nokta içermek zorunda değildir.

  • , 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

    Yalnızca biçim dizesinin sonunda izin verilir; expr , açılı köşeli ayraçlarla (<1> ) negatif bir sayıyı gösterir.

Eğer expr içinde 0 ile 9 arasındaki karakterler veya fmt tarafından izin verilen karakterler dışında başka karakter varsa, bir hata döndürülür.

Geçersiz NULL için bir hata yerine expr döndürmek amacıyla try_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 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');
 1.00

-- The format requires at least three digits.
> SELECT to_number('$45', 'S$999,099.99');
 Error: INVALID_FORMAT.MISMATCH_INPUT

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

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