Dela via


variant_explode tabellvärdesfunktion

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 15.3 och senare

Returnerar en uppsättning rader genom att ta bort kapslingen input.

I Databricks SQL och Databricks Runtime 16.1 och senare stöder den här funktionen med namnet parameteranrop.

Syntax

variant_explode ( input )

Argument

  • variantExpr: Ett VARIANT uttryck som representerar ett VARIANT objekt eller VARIANT ARRAY.

Returer

En uppsättning rader som består av elementen VARIANT ARRAYi eller nycklarna och värdena för VARIANT objektet. Kolumnerna som skapas av variant_explode är:

  • pos INT
  • key 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 utdatakolumnen value representerar elementen i matrisen.

Om input är NULL, eller inte är ett VARIANT ARRAY eller VARIANT -objekt, skapas inga rader. Om du vill skapa en enda rad med NULL värden i det här fallet använder du funktionen variant_explode_outer .

Exempel

-- Simple example
> SELECT *
   FROM variant_explode(parse_json('[1, "a", {"b": "hello"}]'));
  pos  key  value
  ---  ---- -------------
    0  NULL 1
    1  NULL "a"
    2  NULL {"b":"hello"}

> SELECT *
    FROM variant_explode(parse_json('{"foo":1,"bar":"hello"}'));
  pos  key  value
  ---  ---- -------------
    0  bar  "hello"
    1  foo  1

-- Using lateral correlation
> SELECT t.value AS outer, u.value AS inner
    FROM variant_explode(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