如何使用 REPLACE() 交换 SQL* Plus 中的两个字符
How to swap two characters in SQL* Plus , using REPLACE()
我正在尝试使用 REPLACE 函数将 'a' 与 'i' 和 'i' 与 'a' 交换。
示例:
交换前 -> Muradin
交换后 -> Muridan
然而我没有这样做。
我尝试了以下方法:
SELECT REPLACE(REPLACE(name,'a','i'),'i','a')
FROM mytable;
自然不行。因为第一个替换将被提交并且 'a' 将不再存在。
我没有找到任何类似的解决方案,知道我该如何实现吗?
您可以使用TRANSLATE
函数:
SELECT TRANSLATE('Muradin', 'ai', 'ia') AS result
FROM dual;
或多个REPLACE
(警告字符不能出现在像^
这样的字符串中):
SELECT REPLACE(REPLACE(REPLACE('Muradin','i','^'),'a','i'),'^','a') AS result
FROM dual;
我正在尝试使用 REPLACE 函数将 'a' 与 'i' 和 'i' 与 'a' 交换。
示例:
交换前 -> Muradin
交换后 -> Muridan
然而我没有这样做。
我尝试了以下方法:
SELECT REPLACE(REPLACE(name,'a','i'),'i','a')
FROM mytable;
自然不行。因为第一个替换将被提交并且 'a' 将不再存在。
我没有找到任何类似的解决方案,知道我该如何实现吗?
您可以使用TRANSLATE
函数:
SELECT TRANSLATE('Muradin', 'ai', 'ia') AS result
FROM dual;
或多个REPLACE
(警告字符不能出现在像^
这样的字符串中):
SELECT REPLACE(REPLACE(REPLACE('Muradin','i','^'),'a','i'),'^','a') AS result
FROM dual;