【发布时间】:2018-12-27 10:52:31
【问题描述】:
如果此列是 jsonb,我想选择一个列键值。 如果不是jsonb,我想简单地选择列。
代码如下:
SELECT
CASE WHEN (pg_typeof(mycolumn)::text LIKE 'jsonb')
THEN mycolumn->>'mykey'
ELSE mycolumn
END
FROM mytable;
它不起作用,因为不知何故,mycolumn->>'mykey' 仍会针对非 JSONB 类型的列进行评估。
错误:运算符不存在:[...] ->> 未知
提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。
有没有办法让PostgreSQL类型检查接受这个语句,或者有没有其他方法可以做到这一点?
【问题讨论】:
标签: sql json postgresql types jsonb