BigQuery - 处理十六进制字符串的函数

5
有没有在BigQuery中将十六进制字符串转换为十进制值的方法?
类似于:
select hex("ff")
可以这样写:
SELECT CAST(CONV('FF', 16, 10) AS INT64)
4个回答

4

现在,CAST支持将十六进制字符串转换为INT64或FLOAT64值,尽管它没有在它们的参考资料中指定。

以下是使用方法:

SELECT
CAST(columnA as FLOAT64) as float,
CAST(columnB as INT64) as int
FROM table

1
这应该是可以工作的,但事实并非如此(我正在提交一个功能请求):
SELECT INTEGER('0xffff')  

同时,这个确实有效:

SELECT FLOAT('0xffff')  
255.0

对于整数结果:

SELECT INTEGER(FLOAT('0xffff'))
255

在BigQuery中对我不起作用,你确定你的答案是正确的SQL方言吗?我得到以下错误:Function not found: INTEGER at [1:8] - Hedge92

0
我发现以下方法非常成功: 选择CAST(CONCAT('0x',) AS INT64)
请注意其他帖子建议的前缀0x的添加。

0

查询参考来看,我会说不行。

你有"HEX_STRING()"这个函数可以实现相反的功能,但是所有的字符串转数字的函数似乎都不能接受十六进制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接