【问题标题】:SQL Hive - Replace null values with 0 (Hadoop Hive)SQL Hive - 将空值替换为 0 (Hadoop Hive)
【发布时间】:2020-09-14 21:20:30
【问题描述】:

进行左连接后,我留下了许多空(空)值。如何仅在同一查询中的某些列中将这些空值替换为 0?

select 
    m1.*, t2.Apple, t3.Berry, t4.Cherry
from
    table1 as t1
    left join table2 as t2 on t1.id = t2.id
    left join table3 as t3 on t1.id = t3.id
    left join table3 as t4 on t1.id = t4.id
;

示例输出

ID  Apple     Berry    Cheery
1   1         NULL     1
2   1         NULL     NULL
3   NULL      1        NULL
4   NULL      NULL     NULL

【问题讨论】:

    标签: sql hadoop hive left-join sql-null


    【解决方案1】:

    您可以使用coalesce()null 值替换为0s:

    select 
        t1.*, 
        coalesce(t2.Apple,  0) as apple, 
        coalesce(t3.Berry,  0) as berry, 
        coalesce(t4.Cherry, 0) as cherry
    from
        table1 as t1
        left join table2 as t2 on t1.id = t2.id
        left join table3 as t3 on t1.id = t3.id
        left join table4 as t4 on t1.id = t4.id
    ;
    

    请注意,这假定所有 3 个水果列都是数字数据类型。

    旁注:我修正了您原始查询中表别名的一些拼写错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 2016-10-06
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      相关资源
      最近更新 更多