【问题标题】:How to swap two characters in SQL* Plus , using REPLACE()如何使用 REPLACE() 在 SQL* Plus 中交换两个字符
【发布时间】:2016-01-24 18:26:30
【问题描述】:

我正在尝试使用 REPLACE 函数将 'a' 与 'i' 和 'i' 与 'a' 交换。

示例:

交换前 -> 穆拉丁
交换后 -> Muridan

但是我没有这样做。

我尝试了以下方法:

SELECT REPLACE(REPLACE(name,'a','i'),'i','a')
FROM mytable;

自然是不行的。因为第一个替换将被提交,'a' 将不再存在。

我没有找到任何类似的解决方案,知道如何实现吗?

【问题讨论】:

    标签: sql oracle replace swap


    【解决方案1】:

    你可以使用TRANSLATE函数:

    SELECT TRANSLATE('Muradin', 'ai', 'ia') AS result
    FROM dual;
    

    SqlFiddleDemo

    或多个REPLACE(警告字符不能在^这样的字符串中):

    SELECT REPLACE(REPLACE(REPLACE('Muradin','i','^'),'a','i'),'^','a') AS result
    FROM dual;
    

    SqlFiddleDemo2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多