8.2.6. 条件函数

1. If函数: if

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

​ 返回值: T

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

​ 举例:

hive> select if(1=2,100,200) from lxw_dual;
200

hive> select if(1=1,100,200) from lxw_dual;
100

2. 非空查找函数: COALESCE

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

​ 返回值: T

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

​ 举例:

hive> select COALESCE(null,'100','50) from lxw_dual;
100

3. 条件判断函数:CASE

​ 语法: CASE a WHEN b THEN c [WHEN d 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 WHEN a THEN b [WHEN c THEN 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
Copyright © lucene.xin 2020 all right reserved修改时间: 2021-07-02 11:42:23

results matching ""

    No results matching ""