目前,我在表格中有两列,其中一列包含JSON文档,如下所示:
CID:
2
Name:
{"first" : "bob","1" : "william", "2" : "archebuster", "last" : "smith"}
当我使用以下内容在此列上进行搜索时:
SELECT "CID", "Name"->>(json_object_keys("Name")) AS name FROM "Clients" WHERE
"Name"->>'first' LIKE 'bob' GROUP BY "CID";
我得到:
CID | name
--------------
2 | bob
2 | william
2 | archebuster
2 | smith
当我真正想要的是:
CID | name
2 | bob william archebuster smith
我该怎么做?我对postgresql中的JSON很陌生。 我尝试使用string_agg但没有成功,可能是因为我正在使用一个json列,尽管“->>”应该将结果转换为字符串类型。
更新:
array_agg("Name"->>(json_object_keys("Name"))) AS name
。 - Mihai