替换一个单元格中的两个字符

时间:2013-03-20 07:41:11

标签: sql string oracle

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

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

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

5 个答案:

答案 0 :(得分:4)

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

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

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

Find out more.

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

答案 1 :(得分:3)

可以使用

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

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

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

答案 2 :(得分:0)

再次致电替换。

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

答案 3 :(得分:0)

这样做:

select REPLACE(REPLACE(id,',',''),'.','')

答案 4 :(得分:0)

或者使用正则表达式:

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

Find out more