Bagikan melalui


variant_explode fungsi dengan nilai tabel

Berlaku untuk:ditandai tanda centang ya Databricks SQL ditandai tanda centang ya Databricks Runtime 15.3 ke atas

Mengembalikan sekumpulan baris dengan tidak bersarang input.

Dalam Databricks SQL dan Databricks Runtime 16.1 ke atas fungsi ini mendukung pemanggilan parameter bernama.

Sintaks

variant_explode ( input )

Argumen

  • variantExpr: Ekspresi VARIANT , mewakili VARIANT objek atau VARIANT ARRAY.

Mengembalikan

Sekumpulan baris yang terdiri dari elemen VARIANT ARRAYatau kunci dan nilai objek VARIANT. Kolom yang dihasilkan oleh variant_explode adalah:

  • pos INT
  • key STRING
  • value VARIANT.

Saat meledakkan objek VARIANT, kolom output key dan value mewakili kunci dan nilai objek. Saat meledakkan VARIANT array, output key selalu NULL, dan kolom output value mewakili elemen array.

Jika input adalah NULL, atau bukan VARIANT ARRAY objek atau VARIANT , tidak ada baris yang dihasilkan. Untuk menghasilkan satu baris NULL nilai dalam kasus ini, gunakan fungsi variant_explode_outer .

Contoh

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