簡體   English   中英

從Postgres中的對象數組中選擇一個具有特定字段所有值的數組

[英]Select an array with all the values of a particular field from an array of objects in Postgres

我有一列,包含一個對象數組:

[{"name": "Sue", "job": "dev"}, {"name": "Bob", "job": "designer"}]

我想選擇該列,但是我只對字段“ job”的值感興趣,所以我想要一個這樣的數組:

["dev", "designer"]

我認為可以使用JSON運算符和函數來實現此目的,但是我在這里找不到合適的東西: https : //www.postgresql.org/docs/10/functions-json.html 我在那些文檔中忽略了什么嗎? 還有另一種方法可以做到這一點嗎?

json_to_recordset和array_agg應該可以解決您的問題:

select array_agg(job) 
  from myTable
  cross join lateral 
  json_to_recordset(myTable.myJsonColumn) as t(name text, job text);

這是一個SQLFiddle演示

注意:感謝Tony對數組的了解。 我錯過了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM