在postgresql中用字符串中的替换替换多个字符串的最可读方法是什么。

时间:2016-10-17 11:38:19

标签: postgresql replace

我的用例是这样的:

String = "INDIA CANADA ITALY",
String Post Repacement = "IN CA IT"

我正在寻找类似的东西:

replaceMultiple(String, "INDIA", "IN", "CANADA", "CA", "ITALY", "IT")

我目前正在使用嵌套替换这样做,但它的可读性不高,如果我想添加更多替换,我将进一步嵌套。

这可以通过函数实现,比如在运行时使用键值对创建临时表,并用值替换string中的每个键。 还是其他一些方法?

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到。

您可以使用临时表和regexp_replace,或者您可以使用这样的JSON字典:

SELECT string_agg(
          COALESCE(
             '{ "INDIA": "IN", "CANADA": "CA", "ITALY": "IT" }'::jsonb->>s,
             s
          ),
          ' '
       )
FROM regexp_split_to_table('INDIA CANADA ITALY', '\s') s;