Я хочу выбрать значение ключа столбца, если этот столбец является jsonb.Если это не JSONB, я хочу просто выбрать столбец.
Вот код:
SELECT
CASE WHEN (pg_typeof(mycolumn)::text LIKE 'jsonb')
THEN mycolumn->>'mykey'
ELSE mycolumn
END
FROM mytable;
Это не работает, потому что каким-то образом mycolumn->>'mykey'
все еще оценивается для столбцовкоторые не относятся к типу JSONB.
ОШИБКА: оператор не существует: [...] - >> неизвестно
СОВЕТ: ни один оператор не соответствует данному имени и типу аргумента (с).Вам может потребоваться добавить явные приведения типов.
Есть ли способ заставить проверку типов PostgreSQL принять это утверждение или есть другой способ сделать это?