Postgres jsob выбрать конкретные поля массива - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть "снимки" таблицы postgreSQl 10.2 со столбцом jsonb с именем "data"

{
  "entries": [
    {
      "userName": "John",
      "age": "15"
    },
    {
      "userName": "Max",
      "age": "42"
    }]
{

Требуется запрос, чтобы выбрать только userNames из записей в массиве.Я попробовал это

select data->'entries'->>'userName' from snapshots;

, но, конечно, это не возвращает значения, которые мне нужны.

1 Ответ

0 голосов
/ 15 декабря 2018

Разверните массив json с помощью функции jsonb_array_elements(), используемой в боковом соединении:

select item->>'userName'
from snapshots
cross join jsonb_array_elements(data->'entries') as item
...