variant_explode_outer
table-waardefunctie
Van toepassing op: Databricks SQL Databricks Runtime 15.3 en hoger
Retourneert een set rijen door het uit-nesten van variantExpr
met behulp van buitenste semantiek.
Syntaxis
variant_explode_outer ( variantExpr )
Argumenten
-
variantExpr
: EenVARIANT
expressie, die eenVARIANT
object ofVARIANT ARRAY
.
Retouren
Een set rijen die bestaan uit de elementen van de VARIANT ARRAY
of de sleutels en values van het VARIANT
-object.
De columns die door variant_explode
worden geproduceerd, zijn:
pos INT
key STRING
-
value VARIANT
.
Bij het exploderen van een VARIANT
-object vertegenwoordigen de uitvoer key
en value
columns de sleutels en values van het object.
Bij het uitploten van een VARIANT
matrix is de uitvoer key
altijd null en vertegenwoordigt de uitvoer value
column de elementen van de matrix.
Als variantExpr
dit het geval is NULL
, of niet een VARIANT ARRAY
met ten minste één element of een OBJECT
met ten minste één veld, wordt één rij NULL
van s geproduceerd.
Als u in dit geval geen rijen wilt retourneren, gebruikt u de functie variant_explode .
Voorbeelden
-- 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