首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hive 两个不同部类的columns进行比较

2012-06-30 
hive 两个不同类型的columns进行比较select case when ab1234123 then 1 else 0 end as flag from s

hive 两个不同类型的columns进行比较
select case when "ab1234"<>"123" then 1 else 0 end as flag from src limit 1;
1

select case when "ab1234"<>123 then 1 else 0 end as flag from src limit 1;
0

select case when "ab1234"<> cast(123 as bigint) then 1 else 0 end as flag from src limit 1;
0

"ab1234"<>123 两个类型进行比较时:
123转换double
"ab1234"也要转换成double进行比较,但是转换时转换不成,返回null。
所以"ab1234"<>123进行比较时返回null,不为true。

代码在GenericUDFBaseCompare中。
https://issues.apache.org/jira/browse/HIVE-2248 1 楼 clarkyzl 2011-09-22   那个,社区版也是这样的吗?我记得这里好像动过一点,和社区版有点不同,我们是全转double的。 2 楼 bupt04406 2011-09-22   是的,但是ab1234这个转成double是null
clarkyzl 写道那个,社区版也是这样的吗?我记得这里好像动过一点,和社区版有点不同,我们是全转double的。

热点排行