sql
hive
if
提示
Hive SQL 教程 编写中,使用过程中有任何建议,提供意见、建议、纠错、催更加微信 gairuo123。欢迎关注本教程作者新书《深入浅出Pandas:利用Python进行数据处理与分析》 。作者开办 Python 数据分析培训,详情 Python 数据分析培训。
Hive SQL If 函数当条件 testCondition 为 TRUE 时,返回 valueTrue;否则返回 valueFalseOrNull。
IF(boolean testCondition, T valueTrue, T valueFalseOrNull);
当条件 testCondition 为 TRUE 时,返回 valueTrue;否则返回 valueFalseOrNull。相当于 java 中的三目运算符。
这是最好用的条件函数之一,类似于其他编程语言中的 IF 语句。IF 条件函数测试表达式并根据结果是 true、false 还是 null 返回相应的结果。
第一个条件判断的计算可参考:逻辑操作符号。
以下是一些案例:
-- 'True'
select IF(1=1,'TRUE','FALSE');
-- working
select IF(1=1, 'working', 'not working');
-- 200
select if(1=2,100,200);
-- 100
select if(2>1,100,200);
以下是一些技巧案例:
-- 2 可以做嵌套
select if(1==1, if(2==2, 2, 3), 4);
-- 利用 count 不计算 null 的规则,只统计指定条件的
select count(if(x>10, x, null));
-- 同上
select sum(if(x>10, 1, 0));
-- 接上,可去重,如计算 UV
select COUNT(DISTINCT IF(x>10, uid, NULL));
-- 不为空的有多少
select COUNT(IF(x IS NOT NULL, x, NULL));