我有一张桌子Image
id | path | additional | item_id
1 /url/.. {"sm":"/url2/", "md": "/url3/"} 1
additional
是一个jsonb,可以为Null,空{}或带有值
我想检查jsonb是否存在像sm
这样的键。如果键存在,则返回值,否则返回path
。
我的初始想法是使用CASE
,但是我在检查数组和从数组中获取值时遇到了问题
答案 0 :(得分:2)
使用coalesce()
:
select id,
coalesce(additional ->> 'sm', path) as path
from image;
如果键不存在,则运算符->>
将返回null
。