Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:
 Databricks SQL 
 Databricks Runtime 15.3 en hoger
Retourneert een set rijen door het ont-nesten van variantExpr met behulp van outer semantiek.
Syntaxis
variant_explode_outer ( variantExpr )
Argumenten
- 
              
variantExpr: EenVARIANTexpressie, die eenVARIANTobject ofVARIANT ARRAY. 
Retouren
Een set rijen die bestaan uit de elementen van de VARIANT ARRAYof de sleutels en waarden van het VARIANT-object.
De kolommen die door variant_explode worden geproduceerd, zijn:
pos INTkey STRING- 
              
value VARIANT. 
Wanneer u een VARIANT-object uitplot, vertegenwoordigen de uitvoerkolommen key en value de sleutels en waarden van het object.
Bij het uitvouwen van een VARIANT array is de uitvoer key altijd nul en vertegenwoordigt de uitvoer value-kolom de elementen van de array.
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 NULLvan 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