Olvasás angol nyelven

Megosztás a következőn keresztül:


variant_explode_outer táblaértékű függvény

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 15.3 és újabb verziók

Az variantExpr külső szemantikával történő kibontásával egy sorkészletet ad vissza.

Szintaxis

variant_explode_outer ( variantExpr )

Argumentumok

  • variantExpr: Egy VARIANT kifejezés, amely egy VARIANT objektumot vagy VARIANT ARRAY ábrázol.

Visszaküldések

A VARIANT ARRAYelemeiből vagy a VARIANT objektum kulcsaiból és értékeiből álló sorkészlet. A variant_explode által létrehozott oszlopok a következők:

  • pos INT
  • key STRING
  • value VARIANT.

Egy VARIANT objektum felrobbantásakor a kimeneti key és value oszlopok az objektum kulcsait és értékeit jelölik. Egy VARIANT tömb kibontásakor a kimeneti key mindig null értékű, a kimeneti value oszlop pedig a tömb elemeit jelöli.

Ha a variantExpr megegyezik NULL-vel, vagy nem rendelkezik vagy VARIANT ARRAY legalább egy elemmel, vagy OBJECT legalább egy mezővel, akkor egyetlen NULL sor jön létre. Ha ebben az esetben nem szeretne sorokat visszaadni, használja a variant_explode függvényt.

Példák

-- 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