hive常用函数之条件判断函数IF,COALESCE,CASE

1.If函数:if和case差不多,都是处理单个列的查询结果

语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)

返回值: T

说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull

举例:if(条件表达式,结果1,结果2)相当于java中的三目运算符,只是if后面的表达式类型可以不一样。

hive> select if(a=a,’bbbb’,111) fromlxw_dual;

       bbbb

hive> select if(1<2,100,200) fromlxw_dual;

      200

2.非空查找函数: COALESCE

语法: COALESCE(T v1, T v2, …)

返回值: T

说明: 返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL

hive> select COALESCE(null,’aaa’,50)from lxw_dual;

    aaa

3.条件件判断函数:这种CASE A和if差不多,条件查询(常用)

语法: CASE a WHEN b THEN c [WHENd THEN e]* [ELSE f] END

返回值: T

说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f

举例:

hive> Select case 100 when 50 then 'tom’when 100 then ‘mary’ else ‘tim’ end from lxw_dual;

    mary

hive> Select case 200 when 50 then 'tom’when 100 then ‘mary’ else ‘tim’ end from lxw_dual;

    tim

4.条件判断函数:这种case,case后面没有表达式,用于处理单个列的查询结果

语法: CASE WHEN a THEN b [WHEN cTHEN d]* [ELSE e] END

返回值: T

说明:如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e

举例:

hive> select case when 1=2 then 'tom’when 2=2 then ‘mary’ else ‘tim’ end from lxw_dual;

      mary

hive> select case when 1=1 then 'tom’when 2=2 then ‘mary’ else ‘tim’ end from lxw_dual;

     tom 

实战演示:case匹配的结果属于一个新的字段

select * from (

select name ,id ,case

when id <=1235 then ‘low salary’

when id >1235 and id <=1236 then ‘middle’

else ‘very high’

end

from mytest_staff_info_demo4_cp1 where statis_date=‘20180228’) b

查询结果:

name id _c2

‘account1’ 1234 low salary

‘account2’ 1235 low salary

‘account3’ 1235 low salary

‘account4’ 1236 middle

‘account5’ 1237 very high
————————————————

原文链接:https://blog.csdn.net/qq_26442553/article/details/79465417
.
.
.
.
.
下面是我的公众号,收集了现在主流的大数据技能和架构,欢迎大家一起来学习交流。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值