

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# TEXT\$1TO\$1NUMERIC\$1ALT
<a name="r_TEXT_TO_NUMERIC_ALT"></a>

TEXT\$1TO\$1NUMERIC\$1ALT führt einen Umwandlungsvorgang im Teradata-Stil aus, um eine Zeichenfolge in ein numerisches Datenformat zu konvertieren. 

## Syntax
<a name="r_TEXT_TO_NUMERIC_ALT-synopsis"></a>

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

## Argumente
<a name="r_TEXT_TO_NUMERIC_ALT-arguments"></a>

 *expression*   
Ein Ausdruck, der einen oder mehrere CHAR- oder VARCHAR-Werte auswertet, beispielsweise ein Spaltenname oder ein Literal. Die Konvertierung von Null-Werten gibt Null-Werte zurück. Leere Zeichenfolgen werden in 0 umgewandelt. 

 *format*   
Ein Zeichenfolgeliteral, das das Format des Eingabeausdrucks definiert. Weitere Informationen finden Sie unter [Formatierungszeichen im Teradata-Stil für numerische Daten](r_Numeric-format-teradata.md). 

 *precision*   
Die Anzahl der Ziffern im numerischen Ergebnis. Der Standardwert ist 38. 

 *scale*   
Die Anzahl der Ziffern rechts vom Dezimaltrennzeichen im numerischen Ergebnis. Der Standardwert ist 0. 

## Rückgabetyp
<a name="r_TEXT_TO_NUMERIC_ALT-return-type"></a>

TEXT\$1TO\$1NUMERIC\$1ALT gibt eine DECIMAL-Zahl zurück.

Amazon Redshift gibt einen Fehler zurück, wenn die Umwandlung der von Ihnen angegebenen *format*-Phrase fehlschlägt.

Amazon Redshift wandelt die *expression*-Eingabezeichenfolge in den numerischen Typ mit der höchsten Genauigkeit um, die Sie für diesen Typ in der *precision*-Option angeben. Wenn die Länge des numerischen Wertes den Wert übersteigt, den Sie unter *precision* angegeben haben, rundet Amazon Redshift den numerischen Wert gemäß folgender Regeln:
+ Wenn die Länge des Umwandlungsergebnisses die Länge übersteigt, die Sie in der *format*-Phrase angegeben haben, gibt Amazon Redshift einen Fehler zurück.
+ Wenn das Ergebnis in einen numerischen Wert umgewandelt wird, wird das Ergebnis auf den nächsten Wert gerundet. Wenn die Nachkommastelle genau zwischen dem höheren und niedrigeren Umwandlungsergebnis liegt, wird das Ergebnis auf den nächsten geraden Wert gerundet.

## Beispiele
<a name="r_TEXT_TO_NUMERIC_ALT-examples"></a>

Im folgenden Beispiel wird die *expression*-Eingabezeichenfolge '1.5' in den numerischen Wert '2' umgewandelt. Da die Anweisung keinen *scale* angibt, wird der *scale* standardmäßig auf 0 festgelegt und das Umwandlungsergebnis enthält keine Nachkommastellen. Da .5 zwischen 1 und 2 liegt, wird das Umwandlungsergebnis auf den geraden Wert 2 gerundet.

```
select text_to_numeric_alt('1.5');
```

```
 text_to_numeric_alt
---------------------
                   2
```

Im folgenden Beispiel wird die *expression*-Eingabezeichenfolge '2.51' in den numerischen Wert 3 umgewandelt. Da die Anweisung keinen *scale*-Wert angibt, wird der *scale* standardmäßig auf 0 festgelegt und das Umwandlungsergebnis enthält keine Nachkommastellen. Da .51 näher an 3 als 2 liegt, wird das Ergebnis auf den Wert 3 gerundet.

```
select text_to_numeric_alt('2.51');
```

```
 text_to_numeric_alt
---------------------
                   3
```

Im folgenden Beispiel wird die *expression*-Eingabezeichenfolge 123.52501 mit einer *precision* von 10 und einem *scale* von 2 in den numerischen Wert 123.53 umgewandelt. 

```
select text_to_numeric_alt('123.52501', 10, 2);
```

```
 text_to_numeric_alt
---------------------
               123.53
```

Im folgenden Beispiel wird die *expression*-Eingabezeichenfolge '123\$1' mit der *format*-Phrase '999S' in die Zahl 1230 umgewandelt. Das S-Zeichen gibt ein Signed Zoned Decimal an. Weitere Informationen finden Sie unter [Formatierungszeichen im Teradata-Stil für numerische Daten](r_Numeric-format-teradata.md).

```
select text_to_numeric_alt('123{', '999S');
```

```
text_to_int_alt
----------
      1230
```

Im folgenden Beispiel wird die Zeichenfolge 'USD123' für den *Eingabeausdruck* mit der *Formatphrase* 'C9 (I) 'in die Zahl 124 konvertiert. Siehe [Formatierungszeichen im Teradata-Stil für numerische Daten](r_Numeric-format-teradata.md).

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

```
text_to_numeric_alt
----------
       124
```

Das folgende Beispiel gibt eine Tabellenspalte als Eingabe-*expression* an.

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

Im Folgenden sehen Sie die Tabellendefinition und die insert-Anweisung für dieses Beispiel.

```
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');
```