将给定的STRUCT数组展开。每个数组元素对应一行,每行每个STRUCT元素对应一列。
命令格式
inline(array<struct<f1:T1, f2:T2[, ...]>>)
参数说明
f1:T1、f2:T2:必填。可以为任意类型。f1
、f2
代表成员变量,T1
、T2
分别代表成员变量f1
、f2
的取值。
返回值说明
返回STRUCT数组展开的数据。
使用示例
例如表t_table
的字段为t_struct struct<user_id:bigint,user_name:string,married:string,weight:double>
,包含数据如下:
+----------+
| t_struct |
+----------+
| {user_id:10001, user_name:LiLei, married:N, weight:63.5} |
| {user_id:10002, user_name:HanMeiMei, married:Y, weight:43.5} |
+----------+
命令示例如下。
--将t_struct列展开。
select inline(array(t_struct)) from t_table;
--返回结果如下。
+------------+-----------+---------+------------+
| user_id | user_name | married | weight |
+------------+-----------+---------+------------+
| 10001 | LiLei | N | 63.5 |
| 10002 | HanMeiMei | Y | 43.5 |
+------------+-----------+---------+------------+
相关函数
INLINE函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数。