Athena SQL - 如果字符串存在,请从字符串中选择 JSON 字段,否则打印 NULL

Athena SQL - Select JSON field from a string if it exists otherwise print NULL

提问人:RMu 提问时间:11/6/2023 最后编辑:John RotensteinRMu 更新时间:11/6/2023 访问量:46

问:

我有一个名为 Validity 的列,其中包含 JSON 字符串,如下所示:

{begin=2023-10-27T16:13:36.756Z, end=2026-10-27T16:13:36.756Z} 
{begin=2023-10-28T16:13:36.756Z}
SELECT validity.begin, validity.end FROM json_licensedata

我正在尝试在我的查询中打印开始和结束时间戳。当结束字段不存在时,它应打印 NULL。我正在尝试执行 CASE WHEN,但由于该字段不存在,因此失败了!

预期输出 ->

开始 结束
2023-10-27T16:13:36.756Z 2026-10-27T16:13:36.756Z
2023-10-28T16:13:36.756Z
sql amazon-web-services amazon-athena presto trino

评论

0赞 Martin Traverso 11/6/2023
列的实际类型是什么?这些不是有效的 json 字符串,如果列的类型为“JSON”,则您作为示例给出的查询不是有效的语法。他们是map(varchar,varchar)吗?
0赞 Guru Stron 11/7/2023
结果是什么?select typeof(validity) from json_licensedata

答: 暂无答案