Compartilhar via


Função com valor de tabela variant_explode

Aplica-se a: marca de seleção positiva Databricks SQL marca de seleção positiva Databricks Runtime 15.3 e posterior

Retorna um conjunto de linhas desinstalando variantExpr.

Sintaxe

variant_explode ( variantExpr )

Argumentos

  • variantExpr: uma expressão VARIANT, representando um objeto VARIANT ou VARIANT ARRAY.

Devoluções

Um conjunto de linhas composto pelos elementos da VARIANT ARRAY ou as chaves e valores do objeto VARIANT. As colunas produzidas por variant_explode são:

  • pos INT
  • key STRING
  • value VARIANT.

Ao explodir um objeto VARIANT, a saída key e as colunas value representam as chaves e os valores do objeto. Ao explodir uma matriz VARIANT, a saída key é sempre NULL, e a coluna de saída value representa os elementos da matriz.

Se variantExpr for NULL ou não for um objeto VARIANT ARRAY ou um objeto VARIANT, nenhuma linha será produzida. Para produzir apenas uma linha de valores NULL nesse caso, use a função variant_explode_outer.

Exemplos

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