Postgres构建JSON对象时如何排除Null值?无需复杂函数实现
在PostgreSQL中构建仅含非Null值的JSON对象(无需复杂函数)
可以直接使用PostgreSQL内置的jsonb_strip_nulls函数实现需求,完全不需要编写自定义函数。
这个函数的作用是移除JSONB对象中所有值为null的键值对,正好匹配你的场景。修改后的SQL语句如下:
SELECT id, jsonb_strip_nulls( jsonb_build_object( 'price', price, 'item_returned_date', item_returned_date ) ) AS data FROM your_table;
效果说明
- 当
item_returned_date为null时,jsonb_strip_nulls会自动剔除这个键值对,最终data字段仅保留{"price": 50}; - 当
item_returned_date有非空值时,两个键值对都会被保留,生成{"price": 100, "item_returned_date": "2022-10-01"}。
这个方法简洁高效,完全依赖PostgreSQL原生功能,不需要额外的复杂逻辑。
内容的提问来源于stack exchange,提问作者moonshot
相关产品推荐
相关产品推荐

