Pra*_*les 6 sql casting google-bigquery
BigQuery 标准SQL文档建议可以将BYTE字段强制为STRINGS。
我们有一个字节字段,它是使用BigQuery本身对SHA256哈希字段的结果。
现在,我们想将其强制为STRING,但是当我们运行“ CAST(field_name to STRING)”时,会出现错误:
查询失败错误:无效的字节转换为UTF8字符串
是什么阻止我们从此字节字段中获取字符串?它可以克服吗?如果可以,解决方案是什么?
如果您想在 String 中查看哈希的“传统”表示,则必须使用TO_HEX()函数。
WITH table AS (
SELECT SHA256('abc') as bytes_field
)
SELECT bytes_field, TO_HEX(bytes_field) as string_field
FROM table
Run Code Online (Sandbox Code Playgroud)
默认情况下,BigQuery 在 UI 中向您显示 base64 表示,但如果您想将其与其他语言的其他 sha256 函数进行比较,例如,您必须使用 TO_HEX()
下面的例子应该告诉你一个想法
#standardSQL
WITH t AS (
SELECT SHA256('abc') x
)
SELECT x, TO_BASE64(x)
FROM t
Run Code Online (Sandbox Code Playgroud)
简而言之-您可以为此使用TO_BASE64()