我很难使用该功能,但该功能似乎无法按照Google BigQuery(标准语法)reference中的规定运行。这应该是这样的:
WITH Input AS (SELECT '00010203aaeeefff' AS hex_str)
SELECT hex_str, FROM_HEX(hex_str) AS bytes_str
FROM Input;
hex_str | bytes_str
0AF | \x00\xaf
我真正看到的是:
hex_str | bytes_str
0AF | AK8=
显然不一样,但是我不知道为什么。可能是某些未指定的GBQ编码设置-我完全遵循该参考。
有人遇到过吗?
答案 0 :(得分:0)
尝试以下操作:
WITH Input AS (
SELECT '00010203aaeeefff' AS hex_str UNION ALL
SELECT '0AF' UNION ALL
SELECT '666f6f626172'
)
SELECT hex_str, FROM_HEX(hex_str) AS bytes_str, FORMAT("%t", FROM_HEX(hex_str)) AS format_string
FROM Input;
希望有帮助。
答案 1 :(得分:0)
我怀疑您看到的是BigQuery UI显示BYTES
值的base64编码,因此结果似乎不正确。您可以做的是将BYTES
值转换为字符串以显示它们:
WITH Input AS (SELECT '00010203aaeeefff' AS hex_str)
SELECT hex_str, SAFE_CONVERT_BYTES_TO_STRING(FROM_HEX(hex_str)) AS bytes_str
FROM Input;