TEXT_À_ _ NUMERIC ALT - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

TEXT_À_ _ NUMERIC ALT

TEXT_TO_ NUMERIC _ ALT effectue une opération de conversion de type Teradata pour convertir une chaîne de caractères en un format de données numérique.

Syntaxe

TEXT_TO_NUMERIC_ALT (expression [, 'format'] [, precision, scale])

Arguments

expression

Expression qui correspond à une CHAR ou plusieurs VARCHAR valeurs, telles qu'un nom de colonne ou un littéral. La conversion de valeurs null renvoie des valeurs null. Les chaînes vides sont converties en 0.

format

Littéral de chaîne qui définit le format de l’expression en entrée. Pour plus d'informations, consultez Caractères de formatage de type Teradata pour les données numériques.

precision

Nombre de chiffres dans le résultat numérique. La valeur par défaut est 38.

échelle

Nombre de chiffres à droite de la virgule décimale dans le résultat numérique. La valeur par défaut est 0.

Type de retour

TEXT_TO_ NUMERIC _ ALT renvoie un DECIMAL nombre.

Amazon Redshift renvoie une erreur si la conversion dans la phrase format que vous spécifiez n’a pas réussi.

Amazon Redshift convertit la chaîne d’expression en entrée en type numérique avec la précision la plus élevée que vous spécifiez pour ce type dans l’option precision. Si la longueur de la valeur numérique dépasse la valeur que vous spécifiez pour precision, Amazon Redshift arrondit la valeur numérique en appliquant les règles suivantes :

  • Si la longueur du résultat de la conversion dépasse la longueur que vous spécifiez dans la phrase format, Amazon Redshift renvoie une erreur.

  • Si le résultat est converti en une valeur numérique, le résultat est arrondi à la valeur la plus proche. Si la partie après la virgule se trouve exactement à mi-chemin entre les résultats supérieur et inférieur de la conversion, le résultat est arrondi à la valeur pair la plus proche.

Exemples

L’exemple suivant convertit la chaîne d’expression en entrée 1.5 en valeur numérique 2. Parce que l’instruction ne spécifie pas d’échelle, l’échelle par défaut est 0 et le résultat de la conversion n’inclut pas les chiffres après la virgule. Etant donné que .5 est à mi-chemin entre 1 et 2, le résultat de la conversion est arrondi à la valeur pair de 2.

select text_to_numeric_alt('1.5');
text_to_numeric_alt --------------------- 2

L’exemple suivant convertit la chaîne d’expression en entrée 2.51 en valeur numérique 3. Parce que l’instruction ne spécifie pas d’échelle, la valeur d’échelle par défaut est 0 et le résultat de la conversion n’inclut pas les chiffres après la virgule. Étant donné que .51 est plus proche de 3 que 2, le résultat de la conversion est arrondi à la valeur de 3.

select text_to_numeric_alt('2.51');
text_to_numeric_alt --------------------- 3

L’exemple suivant convertit la chaîne d’expression en entrée 123.52501 avec une précision de 10 et une échelle de 2 en valeur numérique 123,53.

select text_to_numeric_alt('123.52501', 10, 2);
text_to_numeric_alt --------------------- 123.53

L'exemple suivant convertit la chaîne d'expression d'entrée « 123 {» avec la phrase de format « 999S » en 1230 numérique. Le caractère S indique une « Signed Zoned Decimal ». Pour de plus amples informations, veuillez consulter Caractères de formatage de type Teradata pour les données numériques.

select text_to_numeric_alt('123{', '999S');
text_to_int_alt ---------- 1230

L'exemple suivant convertit la chaîne d'expression d'entrée « USD123 » avec la phrase de format « C9 (I) » en 124 numérique. Consultez Caractères de formatage de type Teradata pour les données numériques.

select text_to_numeric_alt('USD123.9', 'C9(I)');
text_to_numeric_alt ---------- 124

L’exemple suivant spécifie une colonne de table comme étant l’expression en entrée.

select text_to_numeric_alt(a), text_to_numeric_alt(b) from t_text2numeric order by 1;
text_to_numeric_alt | text_to_numeric_alt -----------------------------------------+----------------------------------------- -99999999999999999999999999999999999999 | -99999999999999999999999999999999999999 -12300 | -12300 123 | 123 123 | 123 99999999999999999999999999999999999999 | 99999999999999999999999999999999999999

Voici la définition de la table et l’instruction insert pour cet exemple.

create table t_text2numeric (a varchar(200), b char(200));
insert into t_text2numeric values ('123', '123'), ('+123.456', '+123.456'), ('-' || repeat('9', 38), '-' || repeat('9', 38)), (repeat('9', 38) || '+', repeat('9', 38) || '+'), ('-123E2', '-123E2');