【发布时间】:2021-05-26 10:05:25
【问题描述】:
我有一个表,其中存储了来自 Json 对象的一些信息:
表:
investment
unit(string)
data(string)
如果运行查询 SELECT * FROM "db"."investment" limit 10; 我得到以下结果:
Unit Data
CH [{"from":"CH","when":"2021-02-16","who":"pp@gmail.com"}]
AB [{"from":"AB","when":"2020-02-16","who":"jj@gmail.com"}]
现在,我运行以下基本查询以在 Json 嵌套对象中返回值:
SELECT json_extract_scalar(Data, '$[0].who') email FROM "db"."investment";
我得到了以下结果:
email
jj@gmail.com
pp@gmail.com
如何使用WHERE 子句过滤此查询以仅返回单个值:
我试过这个,但显然它不能像普通的带有行和列的 SQL 表那样工作:
SELECT json_extract_scalar(Data, '$[0].who') email FROM "db"."investment" WHERE email = "pp@gmail.com";
有什么帮助吗?
【问题讨论】:
标签: sql json presto amazon-athena trino