【发布时间】:2023-03-12 03:14:02
【问题描述】:
我有一个如下所示的嵌套 JSON 字段:
trend
{"trend":0,"abs":0,"per":null}
我想查询并获取里面的值,所以我有一个case语句来获取值:
select
(CASE WHEN trend like '%"trend"%' THEN json_extract_path_text(trend, 'trend') ELSE NULL END)::SMALLINT,
(CASE WHEN trend like '%"abs"%' THEN json_extract_path_text(trend, 'abs') ELSE NULL END)::INTEGER,
(CASE WHEN trend like '%"per"%' THEN json_extract_path_text(trend, 'per') ELSE NULL END)::DOUBLE PRECISION
from staging_raw.table
问题出在最后一个字段 per,因为它已经是 null 我在 Redshift 中收到此错误消息:
我尝试使用该子句:
(CASE WHEN trend like '%"per"%' and json_extract_path_text(trend, 'per') is not NULL THEN json_extract_path_text(trend, 'per') ELSE NULL END)::DOUBLE PRECISION
但我仍然遇到同样的错误。如果来源是这样的,怎么解决?
【问题讨论】:
标签: sql amazon-redshift