适用于:
 Databricks SQL 
 Databricks Runtime
将结构数组分解为一个表。
在 Databricks SQL 和 Databricks Runtime 16.1 及更高版本中,此函数支持命名参数调用。
语法
inline(input)
自变量
- 
              
input:一个ARRAY<STRUCT>表达式。 
返回
由数组 input 的结构元素中的字段组成的行集。
              inline 生成的列是字段的名称。
如果 input 为 NULL,则不会生成任何行。
适用于:
 Databricks Runtime 12.1 及更早版本:inline只能作为表达式的根或跟在SELECT之后放入 列表中。 将该函数放入SELECT列表中时,同一个SELECT列表中不得有其他生成器函数,否则会引发 UNSUPPORTED_GENERATOR.MULTI_GENERATOR。适用于:
 Databricks SQL 
 Databricks Runtime 12.2 LTS 及更高版本:从 LATERAL VIEW 子句或
SELECT列表调用的语法已弃用。 请改为将inline作为 table_reference 调用。
示例
              适用于:
 Databricks Runtime 12.1 及更早版本:
> SELECT inline(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL
> SELECT inline(array(struct(1, 'a'), struct(1, 'b'))),
         inline(array(struct('c', 1.0), struct('d', 2.0))),
         'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
              适用于:
 Databricks SQL 
 Databricks Runtime 12.2 LTS 及更高版本:
> SELECT i.*, 'Spark SQL'
    FROM inline(array(struct(1, 'a'), struct(2, 'b'))) AS i;
 1  a Spark SQL
 2  b Spark SQL
> SELECT i1.*, i2.*, 'Spark SQL'
   FROM  inline(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
         inline(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