【问题标题】:Multiple Replace conditions in PostgresPostgres 中的多个替换条件
【发布时间】:2023-02-23 18:36:23
【问题描述】:

我在名为 Purchase 的表中有一个名为“Path”的列

\\fs01dsc.test.com\data\products\
\\ks01dsc.test.com\items\books\

我需要将此列中所有值的域名更新为 xyz.com,例如 fs01dsc.test.com,还需要将 \\ 更改为 / 并将 \ 更改为 /。

所以预期的输出是

/xyz.com/data/products/
/xyz.com/Items/books/

尝试了以下查询进行更新,但似乎会有更好的方法,我不确定

UPDATE Purchase
SET "PATH" =  LOWER(REPLACE("PATH", '\','/')) 

UPDATE Purchase
SET "PATH" = REPLACE("PATH", split_part("PATH" , '/', 3), 'xyz.com')

【问题讨论】:

    标签: sql postgresql replace sql-update


    【解决方案1】:

    你可以嵌套你的replace电话:

    UPDATE Purchase
    SET    "PATH" = 
           LOWER(REPLACE(REPLACE("PATH", split_part("PATH" , '/', 3), 'xyz.com'), '', '/')
    

    【讨论】:

    • 谢谢!!像这样更新查询“UPDATE purchase SET "PATH" = LOWER(REPLACE(REPLACE(REPLACE("PATH", split_part("PATH" , '', 3), 'xyz.com'), '', '/') ,'//',''))
    猜你喜欢
    • 2016-01-21
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2015-12-24
    相关资源
    最近更新 更多