读书人

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

发布时间: 2012-06-30 17:20:12 作者: rapoo

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的。

读书人网 >开源软件

热点推荐