使用HIVE
查询时,有些场景希望字段为空时返回默认值,有两种方法。
方法1:使用if
函数。
给一个示例SQL:
select if(field is null,'默认值',field) from table_name;
该函数很简单,第一个参数是条件,除了判空还可以作其他判断,比如判断是否等于某个值,第二个参数是满足条件后返回的值,第三个参数是不满足时返回的值,与三目运算符一样。
方法2:使用nvl
函数。
示例SQL:
select nvl(field,'默认值') from table_name;
nvl
函数只需要两个参数,第一个参数是字段,第二个参数是默认值,相当于简化了if函数
。
两个函数都可以实现,不过比较起来,if
函数更灵活,不仅能够判断是否为Null
,还能做更复杂的判断,但是如果只是简单判断Null
的话,nvl
函数还是比较简洁的。
大家可以按照需求使用。