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、演示样例
复制代码
1
2
3
4
5
6
7
8
9
10
11CREATE 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
2
3
4
5
6
71,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。
复制代码
1
2
3
4
5
6
7
8hive> select salary ,isnull(salary) from employee where gender="M"; 10000 false 30000 false NULL true
4.2 Isnotnull(a)
当(列)的值不为NULL时,此方法返回true,否则返回false。
复制代码
1
2
3
4
5
6
7hive> 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)
复制代码
1
2
3
4
5
6
7hive> 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的所有空值替换为默认值
复制代码
1
2
3
4
5
6
7select 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。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12hive> 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。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13hive> 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、实例内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复