Megosztás a következőn keresztül:


A try_to_number függvény

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 11.3 LTS és újabb

expr visszaadása a TIZEDES típusra konvertálva a fmt formázás használatával, vagy NULL, ha expr nem egyezik a formátummal.

Szintaxis

try_to_number(expr, fmt)

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

Argumentumok

  • expr: Egy számot jelképező KARAKTERLÁNC-kifejezés. expr tartalmazhat kezdő vagy záró szóközt.
  • fmt: Egy KARAKTERLÁNC-literál, amely megadja a(z) expr várt formátumát.

Visszatérések

Egy DECIMAL(p, s) kifejezésben, ahol p a számjegyek összesített száma (0 vagy 9), és s a tizedespont utáni számjegyek száma, vagy 0, ha nincsenek számjegyek a tizedespont után.

fmt a következő elemeket tartalmazhatja (nem érzékeny a kis- és nagybetűkre):

  • 0 vagy 9

    Adja meg a várt számjegyet 0 és 9 között. A tizedespontoktól balra lévő A 0 érték azt jelzi, hogy expr legalább annyi számjegynek kell lennie. A bevezető 9 azt jelzi, hogy expr kihagyhatja ezeket a számjegyeket.

    expr nem lehet nagyobb, mint amennyit a tizedesvessző bal oldalán lévő számjegyek száma megenged.

    A tizedesvessző jobb oldalán lévő számjegyek azt jelzik, hogy expr maximuma hány számjegy lehet a megadott fmt tizedesvesszőtől jobbra.

  • . vagy D

    A tizedespont pozícióját adja meg.

    expr nem kell tizedesvesszőt tartalmaznia.

  • , vagy G

    Meghatározza a , csoportosítási (ezres) elválasztó pozícióját. Az egyes csoportosítási elválasztóknak balra 0 és jobbra 9 kell lenniük. expr meg kell egyeznie a szám méretéhez kapcsolódó csoportosítási elválasztóval.

  • L vagy $

    Meghatározza a pénznemjel helyét $. Ez a karakter csak egyszer adható meg.

  • S vagy MI

    Megadja a "+" vagy "-" jel lehetőségét S, és csak a "-" jel helyét MI esetén. Ez az irányelv csak egyszer adható meg.

  • PR

    Azt adja meg, hogy expr negatív számot jelez szögletes zárójelekbe zárva (<1>).

Ha a(z) expr bármilyen más karaktert tartalmaz 0 és 9 között, vagy nem megengedett a fmt-ban, akkor NULL tér vissza.

Szigorú szemantikai használatra to_number().

Példák

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