Экстракт Json принимает значение null - Presto SQL
Я пытаюсь использовать извлечение json, чтобы получить некоторые значения, используя приведенный ниже код:
json_extract_scalar(properties,'$.partner_target_app_id') as partner_target_app_id,
И это работает, однако значения приходят как NULL. Когда я извлекаю поле свойств, я получаю нужные мне значения, как в примере ниже:{"allow_url":false,"partner_target_app_id":[28479748204829001,9388018374784],"link":"http"}
Кто-нибудь знает, в чем может быть проблема? Я думал, что это что-то связано с [] вокруг чисел, но я также попытался использовать '$. [Partner_target_app_id]') и получил тот же результат.
Благодарность
1 ответ
<tcode id="273362"></tcode>предназначен для извлечения скалярных значений (чисел, строк, логических значений). В вашем примере значение, связанное с
partner_target_app_id
это массив.
Вы можете использовать
<tcode id="273364"></tcode>, который в данном случае возвращает значение типа
JSON
содержащий массив чисел JSON, и преобразовать его в массив SQL:
SELECT cast(json_extract(x, '$.partner_target_app_id') as array(bigint))
FROM (
VALUES '{"allow_url":false,"partner_target_app_id":[28479748204829001,9388018374784],"link":"http"}') t(x);
_col0
------------------------------------
[28479748204829001, 9388018374784]
(1 row)