![](/img/trans.png)
[英]Postgres check if jsonb array not contains value returns empty result set
[英]Postgres coalesce to empty JSONB array
我如何能coalesce
一个null
列到一个空JSONB
阵列? 这不起作用:
SELECT jsonb_array_elements(coalesce(null_column, '{}'::jsonb))
FROM table
WHERE id = 13;
-- ERROR: cannot extract elements from an object
这不是:
SELECT jsonb_array_elements(coalesce(null_column, '[]'::jsonb))
FROM table
WHERE id = 13;
-- ERROR: cannot extract elements from a scalar
{}
是一个对象,但jsonb_array_elements
需要一个数组,所以用{}
[]
替换{}
确保两个参数都返回一个jsonb数组。 例如,如果您的列是整数,则可以使用concat
为转换添加方括号和::jsonb
SELECT jsonb_array_elements(coalesce(concat('[',my_column,']')::jsonb,'[]'::jsonb))
这是用于完成您想要的SQL代码:
SELECT jsonb_array_elements(coalesce(null_column, '[{}]'::jsonb))
FROM table
WHERE id = 13;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.