Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Fonction
S’applique à :
Databricks SQL
Databricks Runtime 11.3 LTS et versions ultérieures
Retourne expr casté en DECIMAL à l’aide de la mise en forme fmt.
Syntaxe
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Les arguments
-
expr: expression de type chaîne (STRING) représentant un nombre.exprpeut inclure des espaces de début ou de fin. -
fmt: littéral STRING, spécifiant le format attendu deexpr.
Retours
DECIMAL(p, s) où p correspond au nombre total de chiffres (0 ou 9) et s est le nombre de chiffres après la virgule décimale, ou 0 s’il n’y en a aucun.
fmt peut contenir les éléments suivants (ne respectant pas la casse) :
0ou9Spécifie un chiffre attendu entre
0et9. Un0à gauche des décimales indique queexprdoit avoir au moins autant de chiffres. Un9initial indique queexprpeut omettre ces chiffres.exprne doit pas être supérieur au nombre de chiffres à gauche de la virgule décimale autorisés.Les chiffres à droite de la décimale indiquent le nombre maximal de chiffres que
exprpeut avoir à droite de la virgule décimale spécifié parfmt..ouDSpécifie la position de la virgule décimale.
exprn’a pas besoin d’inclure une virgule décimale.,ouGSpécifie la position du séparateur de regroupement (milliers)
,. Il doit y avoir un0ou9à gauche et à droite de chaque séparateur de regroupement.exprdoit correspondre au séparateur de regroupement correspondant à la taille du nombre.Lou$Spécifie l’emplacement du signe monétaire
$. Ce caractère ne peut être spécifié qu’une seule fois.SouMISpécifie la position d’un signe facultatif '+' ou '-' pour
S, et '-' uniquement pourMI. Cette directive ne peut être spécifiée qu’une seule fois.PRAutorisé uniquement à la fin de la chaîne de format ; spécifie que
exprindique un nombre négatif avec des crochets englobants (<1>).
Si expr contient des caractères autres que 0 à 9, ou des caractères autorisés dans fmt, une erreur est retournée.
Pour retourner NULL au lieu d’une erreur pour un expr non valide, utilisez try_to_number().
Exemples
-- 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');
345.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');
45.00
-- Using brackets to denote negative values
> SELECT to_number('<1234>', '999999PR');
-1234