Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime 15.3 och senare
Returnerar en uppsättning rader genom att avkapsla variantExpr med hjälp av yttre semantik.
Syntax
variant_explode_outer ( variantExpr )
Argumenten
-
variantExpr: EttVARIANTuttryck som representerar ettVARIANTobjekt ellerVARIANT ARRAY.
Returer
En uppsättning rader som består av elementen i VARIANT ARRAYeller nycklar och värden för det VARIANT objektet.
Kolumnerna som skapas av variant_explode är:
pos INTkey STRING-
value VARIANT.
När ett VARIANT objekt exploderar representerar utdata key och value kolumner objektens nycklar och värden.
När en VARIANT matris exploderar är utdata key alltid null och utdata value kolumnen representerar elementen i matrisen.
Om variantExpr är NULL, eller inte är antingen ett VARIANT ARRAY med minst ett element eller ett OBJECT med minst ett fält, skapas en enskild rad med NULLs.
För att returnera ingen rad i det här fallet, använd funktionen variant_explode.
Exempel
-- 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