hive中与oracle一些看上去类似但结果不同的写法总结

1、hive中的date_format与oracle的to_date
两个函数都用来将给定字符串转换成指定格式,date_format最终转换成字符串,to_date转成日期。
另外to_date中用来指定转换格式的模板yyyymmdd,大写小均可以得到的结果也是一致的
select to_date('2019-01-01','yyyy-mm-dd'), to_date('2019-01-01','YYYY-MM-DD') from dual;
2019/1/1    2019/1/1

在date_format中大小写的结果不一致
select date_format('2019-02-01','yyyy-mm-dd'), date_format('2019-02-01','YYYY-MM-DD'),date_format('2019-02-01','yyyyMMdd');
2019-00-01      2019-02-32      20190201

2、hive与oracle中关于!=或者<>过滤NULL、‘’
oracle中‘’与null都相当于空值,在结果集什么都不显示,在使用!=或者<>时这两种值不会作为结果集返回
在hive中‘’与null不同,在结果集中‘’什么都不显示,null显示NULL。null在使用!=或者<>时不作为结果集返回,而‘’是会作为结果集返回的

3、hive中的decode与oracle中对比

在hive总decode是进制转换函数,而hive中的if函数才与oracle中的decode效果类似

 if(expr1,expr2,expr3)

if expr1 is True(expr1<>0 and expr1<>null) then return expr2 otherwise return expr3

if(t.col is not null,'True','False')

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值