Hive(26):case when 和 cast
程序员文章站
2024-03-12 20:40:44
...
一、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;
推荐阅读
-
Hive(26):case when 和 cast
-
Case When和聚合函数count、sum的使用
-
SQLZOO入门题笔记1--replace 和case when
-
oracle 学习笔记 - DECODE函数和CASE WHEN 比较
-
MySQL巧用sum、case和when优化统计查询
-
mysql 数据库查询语句中关于case when then end 和 if/ifnull/nullif
-
decode和case when区别?
-
SQL Server和Access中的条件判断语法(case when和iff)
-
SQL Server和Access中的条件判断语法(case when和iff)
-
decode和case when区别?