Sql 如何在红移中替换JSON中的值?
我有一列包含JSON格式的地址信息。我想用“---”替换街道名称和门牌号 以下是我的专栏内容:Sql 如何在红移中替换JSON中的值?,sql,json,amazon-redshift,Sql,Json,Amazon Redshift,我有一列包含JSON格式的地址信息。我想用“---”替换街道名称和门牌号 以下是我的专栏内容: {"1": {"house_no":1, "street_name":"street1"}, "2": {"house_no":2, "street_name":"street2"}} 我的专栏是这样的: {"1":
{"1": {"house_no":1, "street_name":"street1"}, "2": {"house_no":2, "street_name":"street2"}}
我的专栏是这样的:
{"1": {"house_no":"--", "street_name":"--"}, "2": {"house_no":"--", "street_name":"--"}}
在红移中,JSON存储为VARCHAR列,因此我的假设是需要regexp函数。您可以使用
regexp\u replace()
:
在红移中,这将替换所有引用。在大多数其他数据库中,全局替换需要1,1,'g'
regexp_replace(regexp_replace(col, '"house_no":[^,}]+', '"house_no":"--"'), '"street_name":"[^"]+"', '"street_name":"--"')