Hive(26):case when 和 cast

一、case when

1.针对表

emp.empno       emp.ename       emp.job emp.mgr emp.hiredate    emp.sal emp.comm        emp.deptno
7369    SMITH   CLERK   7902    1980-12-17      800.0   NULL    20
7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
7566    JONES   MANAGER 7839    1981-4-2        2975.0  NULL    20

2.case when的两种格式

(1)简单格式

CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' 
END

(2)搜索格式 

CASE 
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' 
END

  备注:简单格式处理不了null的,所以最好用搜索格式!

3.需求:将emp表的奖金这列如果说没有显示0而不是null

select empno,ename,
case 
when comm is null then 0
else comm
end
from emp;

4.需求:按薪资排序高中低

select empno,ename,
case 
when sal<1000 then 'low'
when sal>=1000 and sal <3000 then 'middle'
else 'high'
end  as new_sal
from emp;

二、cast

1.功能:类型的一个转换

2.实例:将int转换为string

create table casttest as select empno,ename,cast(sal as string) new_sal from emp;
或者
create table casttest2 as select empno,ename,cast(sal as string)  as new_sal from emp;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值