【发布时间】:2021-03-11 17:35:03
【问题描述】:
我对@987654321@ jsonb 数据有一个相当抽象的问题。
例如,我有一个名为…table_one 的表,其中有一个列:
my_jsonb_column jsonb;
在 100% 的情况下包含扁平的json 结构,如
示例:
{"one": null, "two": 0, "three": "" }
可能是不同的长度或null,但总是平坦的。
我的目标就是这样。
每当我选择此列时,我都需要以某种方式将空字符串值 “” 转换为 null 对于每个值为 “” 的 json 成员
示例:
{"one": null, "two": 0, "three": "" } - > {"one": null, "two": 0, "three": null }
最好没有 PLPGsql
Postgres 版本 - 11
谢谢。
【问题讨论】:
-
可能过于简单,无法仅搜索
""并替换为 null? -->WITH j (val) AS ( VALUES ('{"one": null, "two": 0, "three": "" }'::jsonb)) SELECT replace(val::text,'""','null')::jsonb FROM j -
干净整洁,但不幸的是 "" 是一个有效的 JSON 密钥,而 null 不是:)
-
@Stefanov.sm 你说得对。我只是在考虑值,而不是键...感谢您的指出!
-
@JimJones 和 "this\"" 也会爆炸 :)
标签: sql json postgresql