Kategorien:

Konvertierungsfunktionen

CAST, ::

Konvertiert einen Wert von einem Datentyp in einen anderen Datentyp. Die Semantik von CAST stimmt mit der Semantik der entsprechenden TO_ datatype-Konvertierungsfunktionen überein. Wenn die Umwandlung nicht möglich ist, wird ein Fehler erzeugt. Weitere Informationen dazu finden Sie unter den einzelnen TO_ datatype-Konvertierungsfunktionen.

Der ::-Operator bietet eine alternative Syntax für CAST.

Siehe auch:

TRY_CAST

Syntax

CAST( <source_expr> AS <target_data_type> )
  [ RENAME FIELDS | ADD FIELDS ]

<source_expr> :: <target_data_type>
Copy

Argumente

source_expr

Ausdruck eines beliebigen unterstützten Datentyps, der in einen anderen Datentyp konvertiert werden soll.

target_data_type

Der Datentyp, in den der Ausdruck konvertiert werden soll. Wenn der Datentyp zusätzliche Eigenschaften wie Genauigkeit und Skalierung (bei Zahlen/Dezimalzahlen) unterstützt, können die Eigenschaften eingeschlossen werden.

RENAME FIELDS

Gibt bei strukturierten OBJECTs an, dass Sie das OBJECT-Objekt ändern möchten, um andere Schlüssel-Wert-Paare zu verwenden. Die Werte im ursprünglichen Objekt werden in der Reihenfolge, in der sie erscheinen, in die neuen Schlüssel-Wert-Paare kopiert.

Ein Beispiel dazu finden Sie unter Beispiel: Ändern der Schlüsselnamen eines OBJECT-Typs.

ADD FIELDS

Gibt bei strukturierten OBJECTs an, dass Sie Schlüssel-Wert-Paare zu dem OBJECT-Objekt hinzufügen möchten.

Ein Beispiel dazu finden Sie unter Beispiel: Hinzufügen von Schlüsseln zu einem OBJECT-Typ.

Die Werte für die neu hinzugefügten Schlüssel werden auf NULL gesetzt. Wenn Sie diesen Schlüsseln einen Wert zuweisen möchten, rufen Sie stattdessen die Funktion OBJECT_INSERT auf.

Nutzungshinweise

  • Wenn die Skalierung nicht ausreicht, um den Eingangswert in der gegebenen Form beizubehalten, rundet die Funktion den Wert.

  • Wenn die Genauigkeit nicht ausreicht, um den Eingabewert in der gegebenen Form beizubehalten, gibt die Funktion einen Fehler aus.

  • Wenn numerische Spalten beim Entladen von Daten in Parquet-Dateien explizit in Formen des Ganzzahl-Datentyps umgewandelt werden, ist der Datentyp dieser Spalten in den Parquet-Dateien INT. Weitere Informationen dazu finden Sie unter Explizites Konvertieren numerischer Spalten in Parquet-Datentypen.

Beispiele

Konvertieren einer Zeichenfolge, die eine Zahl enthält, in eine Dezimalzahl mit der angegebenen Skalierung (2):

SELECT CAST('1.2345' AS DECIMAL(15,2));
+---------------------------------+
| CAST('1.2345' AS DECIMAL(15,2)) |
|---------------------------------|
|                            1.23 |
+---------------------------------+
Copy

Konvertiert dieselbe Zeichenfolge in eine Dezimalzahl mit Skalierung 5 unter Verwendung der ::-Notation:

SELECT '1.2345'::DECIMAL(15,5);
+-------------------------+
| '1.2345'::DECIMAL(15,5) |
|-------------------------|
|                 1.23450 |
+-------------------------+
Copy

Umwandeln einer Zahl in eine Ganzzahl:

SELECT CAST(1.56 AS INTEGER);
+-----------------------+
| CAST(1.56 AS INTEGER) |
|-----------------------|
|                     2 |
+-----------------------+
Copy

Umwandeln einer Zeichenfolge, die ein Datum enthält, in einen Zeitstempel:

SELECT CAST('05-Mar-2014' AS TIMESTAMP);
+----------------------------------+
| CAST('05-MAR-2014' AS TIMESTAMP) |
|----------------------------------|
| 2014-03-05 00:00:00.000          |
+----------------------------------+
Copy