Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
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.exprkann führende oder nachstehende Leerzeichen enthalten. -
fmt: Ein STRING-Literal, das das erwartete Format vonexprangibt.
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):
0oder9Gibt eine erwartete Ziffer zwischen
0und9an. Ein0links vom Dezimalzeichen zeigt an, dassexprmindestens so viele Ziffern aufweisen muss. Ein führendes9gibt an, dassexprdiese Ziffern weggelassen kann.exprdarf 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
exprrechts vom Dezimalzeichen aufweisen kann, die durchfmtangegeben wird..oderDGibt die Position des Dezimalzeichens an.
exprmuss kein Dezimalzeichen enthalten.,oderGGibt die Position des
,-Trennzeichens für die Gruppierung (Tausender) an. Es muss ein0oder9links oder rechts von jedem Gruppierungstrennzeichen vorhanden sein.exprmuss mit dem für die Größe der Zahl relevanten Gruppierungstrennzeichen übereinstimmen.Loder$Gibt die Position des
$-Währungszeichens an. Dieses Zeichen darf nur einmal angegeben werden.SoderMIGibt die Position eines optionalen '+'- oder '-'-Zeichens für
Sund '-' nur fürMIan. Diese Anweisung darf nur einmal angegeben werden.PRGibt an, dass
expreine 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