3

我正在使用此查询替换单元格中的一个字符

select replace(id,',','')id from table

但我想替换单元格中的两个字符。如果单元格有这些数据(1,3.1),我希望它看起来像这样(131)。如何在一个单元格中替换两个不同的字符?

4

5 回答 5

5

使用 TRANSLATE 而不是 REPLACE()。它将第一个模式中出现的每个字符替换为第二个模式中的匹配字符。要删除字符,只需缩短替换字符串即可:

select translate(id, '1,.', '1') id from table

请注意,第二个字符串不能为空。因此需要在两个字符串中都包含 1 (或其他字符)。

了解更多。

显然,您需要转换/删除的字符越多,TRANSLATE() 就越有吸引力。REPLACE 的主要用途是更改模式(例如单词)而不是单个字符。

于 2013-03-20T07:47:12.853 回答
4

可以使用

select replace(translate(id,',.',' '),' ','') from table;

或者

select regexp_replace('1,3.1','[,.]','') from dual;

或者

select replace(replace(id,',',''),'.','') from table;
于 2013-03-20T09:27:56.657 回答
0

或者使用正则表达式:

select regexp_replace(id, '[.,]', '') id from table

了解更多

于 2013-03-20T08:27:59.230 回答
0

再次调用更换。

select replace(replace(id,',',''), '.','') id from table
于 2013-03-20T07:42:12.823 回答
0

做这个:

select REPLACE(REPLACE(id,',',''),'.','')
于 2013-03-20T07:43:39.217 回答