Hive----条件判断语句

简介: 条件判断语句
  • image.png  条件判断语句 用于为查询字段的值添加判断条件,区别于when!
  • 常用于动态分区
  •  
  • if
  • select
  •     if(condition,true_value,false_value)
  • from tb
  • 例:对男女人数分别进行计算,
  • 计算男的人数时,将性别男标记为数字1,女为数字0
  • 计算女的人数时,将性别女标记为数字1,男为数字0
  • 最终将数字累加
  • select dept_id,
  • sum(if(sex='男',1,0)) [as] malenum,
  • sum(if(sex='女',1,0)) [as] femalenum
  • from emp_sex group by dept_id;
  • -------------------------------------------
  • 统计每个部门男女各多少人
  • 用group  by:
  • select  dept_id,sex,count(*)
  • from  emp_sex group by dept_id,sex;
  •  
  •  
  • =====================================================
  • case when
  • select dept_id,
  • sum(case when sex='男' then 1 else 0  end) [as] malenum,
  • sum(case when sex='女' then 1 else 0  end)  [as] femalenum
  • from emp_sex group by dept_id;
  • ------------------------------------------------------
  • select *,
  •    case
  •         when score >=80 then '优秀'
  •         when score >=60 and score <80 then '及格'
  •         when score >40 and score <60 then '不及格'
  •         else '渣'
  •         (when score <=40 then '渣')
  •    end [as] score_level
  • from stu_score ;
  •  
  •  
  • =====================================================
  • nvl
  • nvl(v1,v2) ,如果v1不为空,取v1,如果为空,取v2
  •  
  • 注Ⅰ:select  nvl(a.id,b.id) from a full join b on a.id=b.id  ;
  • <==> select nvl(b.id,a.id) from a full join b on a.id=b.id ;
  •  
  • 注Ⅱ:select nvl(a.name,b.name) from a full join b on a.id=b.id ;
  • <=/=> select nvl(b.name,a.name) from a full join b on a.id=b.id ;
  •  
  •  
  • =====================================================
  • coalesce
  • coalesce(v1,v2,v3,v4...) 返回第一个非null的值
  • 举例:
  • coalesce(100,null,200,null,120)  --> 100
  • coalesce(null,200,null,120)   --> 200
  • 常用:coalesce(字段)
目录
相关文章
|
3月前
|
SQL JavaScript 前端开发
Hive学习-数据定义语句
Hive学习-数据定义语句
40 5
|
SQL 存储 JSON
Hive 建表语句解析
Hive 建表语句
260 0
|
SQL 存储 分布式计算
|
SQL HIVE
Hive----join语句
join语句
314 0
Hive----join语句
|
SQL HIVE
Hive SQL语句的正确执行顺序
关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select 和 group by 执行的先后顺序,有说 select 先执行,有说 group by 先执行,到底它俩谁先执行呢?
1390 0
Hive SQL语句的正确执行顺序
|
SQL HIVE
Hive----语句执行顺序
语句执行顺序
346 0
|
分布式计算
Hive----查询语句
查询语句
165 0
|
SQL Java Maven
Hive----自定义函数
自定义函数
132 0
|
SQL
Hive----字符串处理函数
字符串处理函数
488 0