问题描述
我的字符串很长,我想半唯一地将其表示为bigint。理想情况下,我只是使用哈希,但是presto hash functions似乎想返回“ varbinary”,而且我找不到将varbinary转换为bigint的函数。
如果我写:
cast(xxhash64(cast('asdf' as varbinary)) as bigint)
我收到一条错误消息,说我无法将varbinary转换为bigint。
解决方法
您可以使用from_big_endian_64
将64位二进制值转换为bigint
:
presto> SELECT from_big_endian_64(xxhash64(CAST('asdf' AS varbinary)));
_col0
---------------------
4708639809588864798
(1 row)