繁体   English   中英

Postgres合并为空JSONB数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM