将数据从另一个包含空值的表插入表中,并将空值替换为原始表1的值

时间:2018-12-19 09:30:37

标签: hadoop replace hive null

enter image description here

我要匹配两个表的第一列,并将表2的值插入表1。但是,如果表2的值为空,则表1保持不变。我正在使用Hive这样做。请帮忙。

1 个答案:

答案 0 :(得分:1)

您需要使用 coalesce 来获取非空值,以便填充b column case >声明,以决定填充c column

示例:

hive> select t1.a,
      coalesce(t2.y,t1.b)b,
      case when t2.y is null then t1.c 
      else t2.z 
      end as c  
     from table1 t1 left join table2 t2 on t1.a=t2.x;

+----+-----+----+--+
| a  |  b  | c  |
+----+-----+----+--+
| a  | xx  | 5  |
| b  | bb  | 2  |
| c  | zz  | 7  |
| d  | dd  | 4  |
+----+-----+----+--+