如何使用SQL查询BigQuery中的BYTES字段?

时间:2017-02-04 13:24:43

标签: sql google-bigquery

我们在Google BigQuery的表格中加密了SHA256字段,结果类型为BYTES。

我们尝试编写各种匹配的字段查询,但没有一个显然是正确的。

SELECT * WHERE
field LIKE '16D6M7PN3w7Cn8mJyrmrUSZY9ummMf5QCGEMuiSmSlw=' 

SELECT ...
field = '16D6M7PN3w7Cn8mJyrmrUSZY9ummMf5QCGEMuiSmSlw='

SELECT ...
field = 16D6M7PN3w7Cn8mJyrmrUSZY9ummMf5QCGEMuiSmSlw=

如何在BigQuery中编写SQL查询来查询BYTES字段?

更新:现在我们使用Gordon的答案运行查询,但它返回零结果,即使字节代码与BigQuery显示的完全匹配。我们还需要做些什么来匹配字节吗?

2 个答案:

答案 0 :(得分:7)

我认为UI显示了字节列的基本64个转义内容,因为它们不能呈现为UTF-8。您需要使用例如

SELECT *
FROM T
WHERE field = FROM_BASE64('16D6M7PN3w7Cn8mJyrmrUSZY9ummMf5QCGEMuiSmSlw=');

答案 1 :(得分:2)

字节文字以b开头。 documentation解释了这一点。

我想你想要:

SELECT *
FROM . . .
WHERE field = b'16D6M7PN3w7Cn8mJyrmrUSZY9ummMf5QCGEMuiSmSlw='