В БД у меня есть строка json, которая может содержать различные типы статуса учетной записи (к сожалению, мы не можем изменить структуру таблицы).2 примера:
"status": "account blocked. Reason test"
"status": "suspended 1544724336657"
Вопрос в том, можно ли проверить, приостановлен ли статус и отделить ли "приостановлено" от метки времени, и преобразовать эту метку в дату?И вернуть его как тип | приостановлено до | 1544724336657?Легко принять все значение статуса, но когда я пытаюсь добавить оператор if, я получаю ошибку.Я пытался сделать это так:
select
id,
if (status::jsonb->'status')::text
like '%suspended%' then split_part(status::jsonb->'status'::text, ' ', 1) status,
split_part(status::jsonb->'status'::text, ' ', 2) until else
status::>jsonb->'status' status end if
where
status is not null;