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 15.3 und höher
Wichtig
Dieses Feature befindet sich in der öffentlichen Vorschau.
Stellt semi-strukturierte Daten dar.
Hinweis
Iceberg v2-Tabellen unterstützen keine VARIANT-Spalten. Apache Iceberg v3 unterstützt VARIANT Spalten. Siehe "Apache Iceberg v3-Features verwenden".
Syntax
VARIANT
Grenzwerte
Der Typ unterstützt das Speichern halbstrukturierter Daten OBJECT, ARRAYund skalarer Typen.
Um STRUCT und MAP zu speichern, verwenden Sie die Funktion to_variant_object.
MAP Schlüssel müssen vom Typ STRINGsein.
Literale
Details zum Erstellen eines parse_json Werts finden Sie in der .
Sie können auch die CAST-Funktion nutzen, um ein Literal eines bestimmten Typs in VARIANT zu konvertieren.
Notizen
- Um einen Wert aus einem
VARIANTzu extrahieren, können Sie die-
variant_get-Funktion mit einem JSON-Pfadausdruck, um zu einem komplexen Typ zu navigieren -
:-Operator (Doppelpunkt), umVARIANTmithilfe eines JSON-Pfadausdrucks zu parsen -
try_variant_get-Funktion mit einem JSON-Pfad, um zu einem komplexen Typ mit Fehlertoleranz zu navigieren -
cast-Funktion oder::-Operator (Doppel-Doppelpunkt), umVARIANTin einen bestimmten Typ umzuwandeln -
try_castFunktion, um denVARIANTin einen bestimmten Typ mit Fehlertoleranz zu umwandeln.
-
- Um den Typ eines
VARIANTWerts zu überprüfen, verwenden Sie die-
schema_of_variantfunktion für einen einzelnen Wert. -
schema_of_variant_aggAggregatfunktion für eine Sammlung von Werten.
-
Beispiele
> SELECT parse_json('{"key": 123, "data": [4, 5, "str"]}');
{"data":[4,5,"str"],"key":123}
> SELECT parse_json(null);
null
> SELECT parse_json('123');
123
> SELECT CAST(123.456 AS VARIANT);
123.456
> SELECT to_variant_object(map('key', 'val'));
{ "key": "val" }
> SELECT to_variant_object(struct('field', 'val'));
{ "field": "val" }