inline_outer
(función de generador con valores de tabla)
Se aplica a: Databricks SQL Databricks Runtime
Expande una matriz de estructuras en una tabla con semántica OUTER
.
Sintaxis
inline_outer(expr)
Argumentos
expr
: expresión ARRAY < STRUCT >.
Conjunto de filas compuestas por los campos de los elementos de estructura de la matriz expr
.
Las columnas generadas por inline
son los nombres de los campos.
Si expr
es NULL
, se genera una sola fila con NULL
s para cada columna.
Se aplica a Databricks Runtime 12.1 y versiones anteriores:
inline_outer
solo se puede colocar en la listaSELECT
como la raíz de una expresión o después de una VISTA LATERAL. Al colocar la función en la listaSELECT
, no debe haber ninguna otra función generadora en la misma listaSELECT
o se genera UNSUPPORTED_GENERATOR. MULTI_GENERATOR.Se aplica a: Databricks SQL Databricks Runtime 12.2 LTS y versiones posteriores:
La invocación de la cláusula LATERAL VIEW o la lista
SELECT
está en desuso. En su lugar, invocainline_outer
como un table_reference.
Ejemplos
Se aplica a Databricks Runtime 12.1 y versiones anteriores:
> SELECT inline_outer(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
1 a Spark SQL
2 b Spark SQL
> SELECT inline_outer(array(struct(1, 'a'), struct(1, 'b'))),
inline_outer(array(struct('c', 1.0), struct('d', 2.0))),
'Spark SQL';
1 a Spark SQL
2 b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
Se aplica a: Databricks SQL Databricks Runtime 12.2 LTS y versiones posteriores:
> SELECT i.*, 'Spark SQL'
FROM inline_outer(array(struct(1, 'a'), struct(2, 'b'))) AS i;
1 a Spark SQL
2 b Spark SQL
> SELECT i1.*, i2.*, 'Spark SQL'
FROM inline_outer(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
inline_outer(array(struct('c', 1.0), struct('d', 2.0))) AS i2;
1 a c 1.0 Spark SQL
1 b c 1.0 Spark SQL
1 a d 2.0 Spark SQL
1 b d 2.0 Spark SQL