このクエリを使用して、セル内の 1 文字を置き換えています
select replace(id,',','')id from table
しかし、セル内の2文字を置き換えたいです。セルにこのデータがあり、この(1,3.1)
ように表示したい場合(131)
。1 つのセルで 2 つの異なる文字を置き換えるにはどうすればよいですか?
REPLACE()の代わりにTRANSLATEを使用してください。これは、最初のパターンで出現する各文字を、2番目のパターンで一致する文字に置き換えます。文字を削除するには、置換文字列を短くカットしたままにします。
select translate(id, '1,.', '1') id from table
2番目の文字列をnullにすることはできないことに注意してください。したがって、両方の文字列に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,',',''),'.','')
置換を再度呼び出します。
select replace(replace(id,',',''), '.','') id from table