Freigeben über


try_to_number-Funktion

Gilt für: Häkchen ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 11.3 LTS und höher

Gibt expr zurück, das mit der Formatierung fmt (oder NULL, wenn expr nicht mit dem Format übereinstimmt) in einen Dezimalwert umgewandelt wurde.

Syntax

try_to_number(expr, fmt)

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

Argumente

  • expr: Ein STRING-Ausdruck, der eine Zahl darstellt. expr kann führende oder nachstehende Leerzeichen enthalten.
  • fmt: Ein STRING-Literal, das das erwartete Format von expr angibt.

Gibt zurück

DECIMAL(p, s), wobei p die Gesamtzahl der Ziffern (0 oder 9) und s die Anzahl der Nachkommastellen oder 0 ist, wenn es keine Ziffern nach dem Dezimalzeichen gibt.

fmt kann die folgenden Elemente enthalten (Groß-/Kleinschreibung wird nicht beachtet):

  • 0 oder 9

    Gibt eine erwartete Ziffer zwischen 0 und 9 an. Ein 0 links vom Dezimalzeichen zeigt an, dass expr mindestens so viele Ziffern aufweisen muss. Ein führendes 9 gibt an, dass expr diese Ziffern weggelassen kann.

    expr darf nicht größer sein, als es die Anzahl der Ziffern links vom Dezimalzeichen gestattet.

    Die Ziffern rechts vom Dezimalzeichen geben die maximale Anzahl der Ziffern an, die expr rechts vom Dezimalzeichen aufweisen kann, die durch fmt angegeben wird.

  • . oder D

    Gibt die Position des Dezimalzeichens an.

    expr muss kein Dezimalzeichen enthalten.

  • , oder G

    Gibt die Position des ,-Trennzeichens für die Gruppierung (Tausender) an. Es muss ein 0 oder 9 links oder rechts von jedem Gruppierungstrennzeichen vorhanden sein. expr muss mit dem für die Größe der Zahl relevanten Gruppierungstrennzeichen übereinstimmen.

  • L oder $

    Gibt die Position des $-Währungszeichens an. Dieses Zeichen darf nur einmal angegeben werden.

  • S oder MI

    Gibt die Position eines optionalen „+“- oder „-“-Zeichens für S, und „-“ nur für MI an. Diese Anweisung darf nur einmal angegeben werden.

  • PR

    Gibt an, dass expr eine negative Zahl mit umschließenden spitzen Klammern (<1>) angibt.

Wenn expr andere Zeichen als 0 bis 9 (oder die in fmt zulässig sind) enthält, wird NULL zurückgegeben.

Verwenden Sie für eine strikte Semantik to_number().

Beispiele

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