Json 提取为空 - Presto SQL
Json extract coming as 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]') 并且也得到了相同的结果。
谢谢
json_extract_scalar
用于提取标量值(数字、字符串、布尔值)。在您的示例中,与 partner_target_app_id
关联的值是一个数组。
您可以使用 json_extract
,在这种情况下,returns 类型 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)
我正在尝试使用 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]') 并且也得到了相同的结果。
谢谢
json_extract_scalar
用于提取标量值(数字、字符串、布尔值)。在您的示例中,与 partner_target_app_id
关联的值是一个数组。
您可以使用 json_extract
,在这种情况下,returns 类型 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)