День добрый.
Вот такой вопрос возник. Есть таблица item с полем jsonb и в том жысоне есть такая запись:
{
"time":{
"start":"2022-10-12T10:00:00Z",
"end":"2022-10-12T10:05:00Z",
...
}
}
Хочется вытащить в один select эти поля и запихать в таблицу вида (id, time_t, time_v), где id это id записи в таблице item, time_t это тип времени («start», «end», etc ), ну а time_v это само значение.
Может кто-нибудь подсказать как правильно это сделать?
Я попытался сделать через jsonb_each_text
и jsonb_extract_path
.
И в результате запроса select jsonb_each_text(jsonb_extract_path( item.data, 'time' )) from item
я получаю нечто вида
"(end,1998-10-13T06:58:33Z)"
"(gen,2022-05-16T09:08:57Z)"
"(start,1998-10-13T06:51:55Z)"
"(end,1993-08-25T21:39:23Z)"
В доке по jsonb_each_text
советуют делать select * from jsonb_each_text()
, но как тут это сделать чтобы получить нормальный результат с полями, я что-то не понимаю.