hive 条件判断函数

编程入门 行业动态 更新时间:2024-10-15 06:17:04

hive 条件判断<a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数"/>

hive 条件判断函数

1. if 函数

  • 同case,nvl,都是处理单个列值的查询结果

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

当条件testCondition为True,返回valueTrue;否则返回valueFalseOrNull
例子:-- if 语句语法,请为 Null 的设置为 0
SELECT if(var IS NULL, 0 ,var) AS var_name
-- 满足一定条件的总数,Null count() 不计数
SELECT count(if(score>=80, score, NULL)) AS good
-- case when 枚举翻译
SELECT page_id AS page_id,CASE page_idWHEN 001 THEN '第一名'WHEN 002 THEN '第二名'ELSE '-'END AS name

2. 非空查询函数

2.1. COALESCE(T v1, T v2, …)

  • 返回第一个不为 Null 的值;若都为null,则返回null
  • 例子
coalesce(a3.salary,0)

2.2. CASE WHEN condition THEN value1 ELSE value2

  • 当符合条件时,返回条件value1;否则返回value2
  • 例子
SELECT page_id AS page_id,CASE page_idWHEN 001 THEN '第一名'WHEN 002 THEN '第二名'ELSE '-'END AS name

2.3. 并列 CASE WHEN

  • case 表达式,同java的switch 表达式;符合某个conditionX,则返回对应resultx;若无匹配,则返回ELSE 逻辑reuslt
  • 格式
CASE  [ expression]
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultn
ELSE result
END

2.4. case when 嵌套 [较少使用,可用 2.3部分 代替]

  • 当满足当前case when condition1,则进入该逻辑,如符合内层 when condition2 ,则返回当前result1,如果符合condition3,则返回 result2;否则返回ELSE 分支result3
  • 格式 如果condition匹配到condition2
CASE   condition1 WHEN condition2 THEN result1 [WHEN condition3 THEN result2]* [ELSE  result3 ] END 

3. 判空函数

3.1. nvl(a,b)

  • 若a为空,则返回b,否则为a
  • 例子
select concat(nvl(cast(a as string), 'na'),nvl(cast(b as string),'na')) from tmp

3.2. nullif(a,b)

  • a=b时,返回null,否则为a
  • 例子
select concat(nullif(a,'na'),nullif(b,'na')) from tmp

更多推荐

hive 条件判断函数

本文发布于:2024-03-06 09:17:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1714951.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   条件   hive

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!