我正在使用此查询替换单元格中的一个字符
select replace(id,',','')id from table
但我想替换单元格中的两个字符。如果单元格有这些数据(1,3.1)
,我希望它看起来像这样(131)
。如何在一个单元格中替换两个不同的字符?
使用 TRANSLATE 而不是 REPLACE()。它将第一个模式中出现的每个字符替换为第二个模式中的匹配字符。要删除字符,只需缩短替换字符串即可:
select translate(id, '1,.', '1') id from table
请注意,第二个字符串不能为空。因此需要在两个字符串中都包含 1 (或其他字符)。
显然,您需要转换/删除的字符越多,TRANSLATE() 就越有吸引力。REPLACE 的主要用途是更改模式(例如单词)而不是单个字符。
可以使用
select replace(translate(id,',.',' '),' ','') from table;
或者
select regexp_replace('1,3.1','[,.]','') from dual;
或者
select replace(replace(id,',',''),'.','') from table;
再次调用更换。
select replace(replace(id,',',''), '.','') id from table
做这个:
select REPLACE(REPLACE(id,',',''),'.','')