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
结果:只有9和10,当cate_id 等于2,prod_type_3  包含冰箱的改为了10,其他都是9了
  • 正确语句
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,
注意:END只是作为条件的结束语句,后面字段为别名,没有特殊含义

2.case when 的用法

用法一

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

用法二

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

用法三

case 

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

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

  • 15
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值