我有十六进制字符串,我需要转换为Base-2二进制字符串,但我不能让Impala一致执行。
例如。
我期望这一声明:
select conv('0020008000',16,2) union
select conv('000006040A',16,2);返回:
0000 0000 0010 0000 0000 0000 1000 0000 0000 0000
0000 0000 0000 0000 0000 0110 0000 0100 0000 1010然而,相反,它正在返回:
0000 0000 0010 0000 0000 0000 1000 0000 0000 0000
1100 0000 1000 0001 010第一个HEX值被正确转换,但是第二个HEX值缺少前21个数字(全部为零)。
有人能解释一下为什么会发生这种事吗?我怎样才能纠正这种行为?
发布于 2018-05-23 08:01:42
黑斑羚/蜂巢将多个前导零视为冗余,并对其进行修剪。我不确定这种行为是否可以打开/关闭。我用lpad函数解决了这个问题。
https://stackoverflow.com/questions/50278085
复制相似问题