logo头像
Snippet 博客主题

Hive-case when的用法

hive字段复杂条件映射


case when 提供了比较大的便利性,如果只有一次条件判断的话直接用if条件就可以了,但是判断条件太多还使用if的话就会嵌套多层从而导致无法阅读。


hive的case when有两种用法

  1. 对某字段进行判断,只适用于字符串类型
    1
    2
    3
    4
    5
    6
    7
    8
    select 
    case os
    when 'android' then 'a'
    when 'ios' then 'i'
    else 'o'
    end as os_code
    from
    table t

  1. 判断条件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select 
    case
    when age < 18 then '青少年'
    when age >=18 and age < 30 then '青年'
    when age >= 30 then '中年'
    else '其它'
    end as age_range
    from
    table t

评论系统未开启,无法评论!