【问题标题】:How can I replace values in JSON in Redshift?如何在 Redshift 中替换 JSON 中的值?
【发布时间】:2020-11-26 13:32:02
【问题描述】:

我有一列包含 JSON 格式的地址信息。我想用“--”替换街道名称和门牌号。

这是我的专栏的样子:

{"1": {"house_no":1, "street_name":"street1"},  "2": {"house_no":2, "street_name":"street2"}}

所以我的专栏应该是这样的:

 {"1": {"house_no":"--", "street_name":"--"},  "2": {"house_no":"--", "street_name":"--"}}

在 Redshift 中,JSON 存储为 VARCHAR 列,所以我的假设是需要 regexp 函数。

【问题讨论】:

    标签: sql json amazon-redshift


    【解决方案1】:

    你可以使用regexp_replace():

    regexp_replace(regexp_replace(col, '"house_no":[^,}]+', '"house_no":"--"'), '"street_name":"[^"]+"', '"street_name":"--"')
    

    在 Redshift 中,这应该替换所有出现的情况。在大多数其他数据库中,您需要 1, 1, 'g' 进行全局替换。

    【讨论】:

      猜你喜欢
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多