FROM_HEX в Google BigQuery возвращает другой результат, чем результат в публичной документации - PullRequest
0 голосов
/ 07 декабря 2018

Мне трудно работать с этой функцией, которая, кажется, не работает, как указано в Google BigQuery (стандартный синтаксис) ссылка .Вот как это должно работать:

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, который не указан, - я точно следую за ссылкой.

Кто-нибудь сталкивался с этим?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Я подозреваю, что вы видите, что пользовательский интерфейс BigQuery показывает base64-кодировку значений BYTES, поэтому результаты выглядят неверными.Вместо этого вы можете преобразовать значения 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;
0 голосов
/ 07 декабря 2018

Попробуйте следующее:

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;

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...