0


hive表的全关联full join用法

背景:实际开发中需要用到全关联的用法,之前没遇到过,现在记录一下。需求是找到两张表的并集。

全关联的解释如下;

在这里插入图片描述

下面建两张表进行测试

test_a表的数据如下
在这里插入图片描述
test_b表的数据如下;
在这里插入图片描述

写第一个full join 的SQL进行查询测试

select * from 
    pdata_dynamic.test_a a
full join
    pdata_dynamic.test_b b
on a.id=b.id;

查询结果显示如下;
把两个表的结果拼在一行了,匹配不上的都用NULL值进行填充了,显然不是我要的结果
在这里插入图片描述

优化好的full join的SQL写法如下

select
case when
        a.id is null then b.id
else
        a.id
end
        id ,case when
        a.name is null then b.name
else
        a.name
end
        name,case when
        a.age is null then b.age
else
        a.age
end
        age,case when
        a.hight is null then b.hight
else
        a.hight
end
        hight
from
        pdata_dynamic.test_a a
full join
        pdata_dynamic.test_b b
on a.id=b.id;

查询完显示如下,nice,😄
在这里插入图片描述


本文转载自: https://blog.csdn.net/qq_38220334/article/details/132423816
版权归原作者 呼伦贝尔-钢蛋儿 所有, 如有侵权,请联系我们删除。

“hive表的全关联full join用法”的评论:

还没有评论