我是靠谱客的博主 烂漫学姐,最近开发中收集的这篇文章主要介绍hive条件查询1、语法2、演示样例3、数据4、实例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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条件。当testConditiontrue时,此方法返回valueTrue,否则返回valueFalseOrNullReturn: 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、实例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部