概述
1、语法
条件语句 | 描述 | 返回 |
---|---|---|
Isnull( a ) | 当(a)的值为NULL时,此方法返回true,否则返回false。 | Return: boolean |
Isnotnull ( a ) | 当(列)的值不为NULL时,此方法返回true,否则返回false。 | Return: boolean |
If(boolean testCondition, T valueTrue, T valueFalseOrNull) | 类似于SQL查询中存在的IF条件。当testCondition 为true 时,此方法返回valueTrue ,否则返回valueFalseOrNull | Return: T |
Nvl(T value, T default_value) | 这会将列T的所有空值替换为默认值 | Return: T |
COALESCE(T v1, T v2, …) | 返回不为NULL的第一个v,如果所有v均为NULL,则返回NULL。 | Return: T |
CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END | 这类似于switch语句,其中当a = b时,返回c; 当a = d时,返回e; 否则返回f。 | Return: T |
CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END | 当a = true时,返回b; 当c = true时,返回d; 否则返回e。 | Return: T |
Nullif( a, b ) | Return: T | |
Assert_true(boolean condition) |
2、演示样例
CREATE TABLE IF NOT EXISTS employee (
id int,
name string,
age int,
gender string,
salary decimal
)
COMMENT 'Employee Table'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
3、数据
1,James,30,M,10000
2,Ann,40,F,20000
3,Jeff,41,M,30000
4,Jennifer,20,F,40000
5,Kum,30,M,
7,Jeni,,,
4、实例
4.1 Isnull( a )
当(列)的值为NULL时,此方法返回true,否则返回false。
hive> select salary ,isnull(salary) from employee where gender="M";
10000 false
30000 false
NULL true
4.2 Isnotnull(a)
当(列)的值不为NULL时,此方法返回true,否则返回false。
hive> select salary ,isnull(salary) from employee where gender="M";
10000 true
30000 true
NULL false
4.3 If(boolean testCondition, T valueTrue, T valueFalseOrNull)
类似于SQL查询中存在的IF条件。如果testCondition为true,则返回valueTrue,否则返回valueFalseOrNull
句法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)
hive> select salary ,if(isnull(salary),'No Salary','Present Salary') from employee where gender="M";
10000 Present Salary
30000 Present Salary
NULL No Salary
4.4 Nvl(T value, T default_value)
这会将列T的所有空值替换为默认值
select salary ,Nvl(salary ,-1) from employee where gender="M";
10000 10000
30000 30000
NULL -1
4.5 CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END
这类似于switch语句,其中当a = b时,返回c; 当a = d时,返回e; 否则返回f。
hive> select salary, case salary when 10000 then 1
> when 30000 then 3
> else -1
> end
> from employee where gender ="M";
10000 1
30000 3
NULL -1
4.6 CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END
当a = true时,返回b; 当c = true时,返回d; 否则返回e。
hive> select salary,gender,
> case when salary <10001 then 1
> when salary >10001 then 3
> else -1
> end
> from employee where gender="M";
10000 M 1
30000 M 3
NULL M -1
最后
以上就是烂漫学姐为你收集整理的hive条件查询1、语法2、演示样例3、数据4、实例的全部内容,希望文章能够帮你解决hive条件查询1、语法2、演示样例3、数据4、实例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复