Partilhar via


variant_explode função com valor de tabela

Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 15.3 e superior

Retorna um conjunto de linhas desaninhando input.

No Databricks SQL e Databricks Runtime 16.1 e superior, esta função suporta a invocação de parâmetros nomeados.

Sintaxe

variant_explode ( input )

Argumentos

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

Devoluções

Um conjunto de linhas composto pelos elementos do VARIANT ARRAYou 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, as colunas de saída key e value representam as chaves e os valores do objeto. Ao expandir uma matriz VARIANT, a saída key é sempre NULLe a coluna value da saída representa os elementos da matriz.

Se input for NULL, ou não for um VARIANT ARRAY ou VARIANT objeto, nenhuma linha será produzida. Para produzir uma única linha de NULL valores 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