我正在使用此查询替换单元格中的一个字符
select replace(id,',','')id from table
但我想替换单元格中的两个字符。
如果单元格中包含此数据(1,3.1)
,我希望它看起来像(131)
。
如何在一个单元格中替换两个不同的字符?
答案 0 :(得分:4)
使用TRANSLATE而不是REPLACE()。它将第一个模式中每个字符的出现替换为第二个模式中匹配的字符。要删除字符,只需将cut cut替换为替换字符串:
select translate(id, '1,.', '1') id from table
请注意,第二个字符串不能为空。因此需要在两个字符串中包含1(或其他一些字符)。
显然,转换/删除更具吸引力的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)