Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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" }