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
Gibt Zeilen zurück, indem die Schachtelung von variantExpr
mithilfe von äußerer Semantik aufgehoben wird.
Syntax
variant_explode_outer ( variantExpr )
Argumente
-
variantExpr
: EinVARIANT
-Ausdruck, der einVARIANT
-Objekt oder eineVARIANT ARRAY
-Instanz darstellt.
Gibt zurück
Zeilen, die aus den Elementen der VARIANT ARRAY
-Instanz oder den Schlüsseln und Werten des VARIANT
-Objekts bestehen.
Die von variant_explode
erzeugten Spalten sind:
pos INT
key STRING
-
value VARIANT
.
Beim Explodieren eines VARIANT
-Objekts stellen die Ausgabespalten key
und value
die Schlüssel und Werte des Objekts dar.
Beim Explodieren eines VARIANT
-Arrays ist die key
-Ausgabe immer null, und die Ausgabespalte value
stellt die Elemente des Arrays dar.
Wenn variantExpr
NULL
ist oder kein VARIANT ARRAY
mit mindestens einem Element oder kein OBJECT
mit mindestens einem Feld, wird eine einzelne Zeile mit NULL
erzeugt.
Wenn in diesem Fall keine Zeilen zurückgegeben werden sollen, verwenden Sie die variant_explode-Funktion.
Beispiele
-- Simple example
> SELECT *
FROM variant_explode_outer(parse_json('[1, "a", {"b": "hello"}]'));
pos key value
--- ---- -------------
0 NULL 1
1 NULL "a"
2 NULL {"b":"hello"}
> SELECT *
FROM variant_explode_outer(parse_json('{"foo":1,"bar":"hello"}'));
pos key value
--- ---- -------------
0 bar "hello"
1 foo 1
-- null input
> SELECT value FROM variant_explode_outer(null) AS t(pos, key, value);
null
-- Not an array or object input
> SELECT value FROM variant_explode_outer(parse_json('123')) AS t(pos, key, value);
null
-- Using lateral correlation
> SELECT t.value AS outer, u.value AS inner
FROM variant_explode_outer(parse_json('[[1, 2], [3, 4]]')) AS t,
LATERAL variant_explode(t.value) AS u;
outer inner
----- -----
[1,2] 1
[1,2] 2
[3,4] 3
[3,4] 4