当前位置:   article > 正文

HIVE case when用法

hive case when

1.case when的理解

  • 目的:将表的cate_id是2的 和 prod_type_3 包含冰箱两个字的改为10,当cate_id是2的和 prod_type_3 不包含冰箱两个字的改为9,不满足上述条件的保持原值

  • 错误hive语句

CASE 
 WHEN t.cate_id = 2 AND t.prod_type_3 LIKE '%冰箱%' THEN 10 
 ELSE 9 END cate_id
  • 1
  • 2
  • 3
结果:只有9和10,当cate_id 等于2,prod_type_3  包含冰箱的改为了10,其他都是9了
  • 1
  • 正确语句
CASE 
 WHEN t.cate_id = 2 AND t.prod_type_3 LIKE '%冰箱%' THEN 10
 WHEN t.cate_id = 2 AND t.prod_type_3 NOT LIKE '%冰箱%' THEN 9
 ELSE cate_id END cate_id,
  • 1
  • 2
  • 3
  • 4
注意:END只是作为条件的结束语句,后面字段为别名,没有特殊含义
  • 1

2.case when 的用法

用法一

case tb1.os
when 'android'        then  ' android'
when 'ios'               then    'iPhone'
else 'PC'
end as os
  • 1
  • 2
  • 3
  • 4
  • 5
说明:case后写匹配列,最简单的用法,但是功能单一,只能转变单行
  • 1

用法二

case 
when tb1.os = 'android'  and t1.bc = 'android'  then 'android'
when tb1.os = 'ios' then 'iPhone'
else 'PC'
end as os
  • 1
  • 2
  • 3
  • 4
  • 5
说明:case后不写匹配列,一个when后面可以跟多个不同行的条件
  • 1

用法三

case 

when t1.bc = 'android'  then  'android'
when t1.os = 'android'  then  'android'
when t1.os = 'ios'  then  'iPhone'
end as os,
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
说明:case后不写匹配列,不同when后面可以跟多个不同行的条件
  • 1

没有克服不了的困难,只有畏惧的心。 生活之所以耀眼,是因为磨难与辉煌会同时出现。所以,别畏惧暂时的困顿,即使无人鼓掌,也要全情投入,优雅坚持。请相信:不管多险峻的高山,总会给勇敢的人留一条攀登的路。只要你肯迈步,路就会在你脚下延伸。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/499578
推荐阅读
相关标签
  

闽ICP备14008679号