【问题标题】:Insert values into multiple rows separated by commas将值插入以逗号分隔的多行
【发布时间】:2020-07-07 06:45:11
【问题描述】:

我有一张表,其中有一列 id。现在我想编写一个配置单元查询,输入逗号分隔的id 值,拆分它们并逐行插入它们。例如:

输入 - abc,def,ghi

输出 -

-----id-----
abc
def
ghi

【问题讨论】:

  • 您能分享一下您的尝试吗?

标签: sql split hive hiveql explode


【解决方案1】:

使用lateral view [outer] + 分解和拆分:

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 应用于基表的每一行,然后将结果输出行连接到输入行。

【讨论】:

  • 上述查询中的插入发生在哪里?
  • @AkshatChoudhary 添加了插入
  • 您能否对上述查询提供一些解释?
猜你喜欢
  • 2012-02-29
  • 2013-01-14
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
相关资源
最近更新 更多