我有一张只有一列的table id . 现在我想编写一个以逗号分隔的输入为输入的配置单元查询 id 值,将其拆分并逐行插入。例如:输入- ,def,ghi 输出-
id
,def,ghi
-----id----- abc def ghi
0g0grzrc1#
使用侧视图[外部]+分解和拆分:
insert into table t2 select s.id from table1 t1 lateral view explode (split(t1.id,',')) s as id
演示:
select s.id from (select 'abc,def,ghi' as id) t1 lateral view explode (split(t1.id,',')) s as id
结果:
id abc def ghi ``` `split(t1.id,',')` 生成一个数组。 `explode` -是一个表生成函数(udtf),它将数组转换为行。一 `lateral view` 首先将udtf应用于基表的每一行,然后将生成的输出行与输入行连接起来。
1条答案
按热度按时间0g0grzrc1#
使用侧视图[外部]+分解和拆分:
演示:
结果: