【问题标题】:Substitute multiple values by a list of other values in Postgres用 Postgres 中的其他值列表替换多个值
【发布时间】:2016-02-20 14:02:51
【问题描述】:

如何在 Postgres 中替换多个值?我需要执行以下操作:

In column C
Case current value = x then replace by a
else if current value is y then replace by b
else if current value is z then replace by c...

【问题讨论】:

    标签: sql postgresql replace


    【解决方案1】:

    使用CASE WHEN:

    UPDATE table_name
    SET column_name =
          CASE WHEN column_name = 'x' THEN 'a'
               WHEN column_name = 'y' THEN 'b'
               WHEN column_name = 'z' THEN 'c'
               ...
               ELSE column_name                 -- default
         END
    -- WHERE id = ?
    

    LiveDemo

    【讨论】:

    • 这是一个性能卓越的完美解决方案。谢谢小伙子2025。
    • @user3016650 如果您的问题已经解决,您可以accept my answer :)
    【解决方案2】:

    如果您碰巧正在处理文本(或可以转换为文本的内容),您可以尝试翻译功能。

    translate(string text, from text, to text) text:

    字符串中与 from 集中的字符匹配的任何字符都是 替换为要设置的相应字符。如果从是 长于 to,出现 from 中的额外字符是 删除。翻译('12345', '143', 'ax') a2x5`

    【讨论】:

      猜你喜欢
      • 2019-10-11
      • 2022-09-23
      • 1970-01-01
      • 2018-02-18
      • 2023-03-03
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      • 2014-08-01
      相关资源
      最近更新 更多