Hive nvl 和 coalesce 的使用

nvl 和 coalesce 说明

nvl 和 coalesce 是 HSQL  中常用的 空值处理函数,今天给大家聊聊这两个函数的使用细节、

数据准备

 先建表插入两条测试数据

复制代码
create table temp.jc_test_coalesce_nvl
(
    c1 int,
    c2 int,
    c3 int,
    c4 int,
    c5 int
);
insert into temp.jc_test_coalesce_nvl values (null, 2, null, null, 5);
insert into temp.jc_test_coalesce_nvl values (1, null, 3, null, null);
select * from temp.jc_test_coalesce_nvl;
复制代码

 

coalesce 

coalesce 函数语法为 coalesce(表达式1,表达式2....表达式n),coalesce函数的返回结果是第一个非空表达式,如果全是空则 返回 空.使用时需注意:所有表达式值是同一类型(转换同一类型亦可)。

select coalesce(c1, c2, c3, c4) null_1, coalesce(c1, c4) null_all
from temp.jc_test_coalesce_nvl;

 

nvl 函数

nvl 函数语法 nvl(默认值,表达式) 如果 默认值为不为空返回默认值,默认值为空 返回 表达式值,如果两者都为空 返回空:默认值,表达式 的值类型是同一类型(转换同一类型亦可)。

select nvl(c1, nvl(c2, nvl(c3, c4))) null_1, nvl(c1, c4) null_all
from temp.jc_test_coalesce_nvl;

  简单总结

  • nvl:如果第一个值非空取默认值,默认值是自己赋值上去的是个常数。支持两个参数。其本质是个函数。
  • coalesce:如果第一个参数为空就取第二个参数的值,第二个参数可以为常数也可以为表达式(字段,语句等)。以此类推,支持多个参数。更常用,其本质是个语句,更像个if语句,效率更高,建议使用。

 

posted @   晓枫的春天  阅读(5313)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示