Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime 15.3 e versões posteriores
Retorna um conjunto de linhas através do desaninhamento de variantExpr com semântica externa.
Sintaxe
variant_explode_outer ( variantExpr )
Argumentos
-
variantExpr: UmaVARIANTexpressão, representando umVARIANTobjeto ouVARIANT 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 INTkey STRING-
value VARIANT.
Ao explodir um objeto VARIANT, as colunas de saída key e value representam as chaves e os valores do objeto.
Quando se explode uma matriz VARIANT, a key de saída é sempre nula e a coluna de saída value corresponde aos elementos da matriz.
Se variantExpr for NULL, ou não for um VARIANT ARRAY com pelo menos um elemento, ou um OBJECT com pelo menos um campo, uma única linha de NULL é produzida.
Para não retornar nenhuma linha neste caso, use a função variant_explode.
Exemplos
-- 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