3

このクエリを使用して、セル内の 1 文字を置き換えています

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

しかし、セル内の2文字を置き換えたいです。セルにこのデータがあり、この(1,3.1)ように表示したい場合(131)。1 つのセルで 2 つの異なる文字を置き換えるにはどうすればよいですか?

4

5 に答える 5

5

REPLACE()の代わりにTRANSLATEを使用してください。これは、最初のパターンで出現する各文字を、2番目のパターンで一致する文字に置き換えます。文字を削除するには、置換文字列を短くカットしたままにします。

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

2番目の文字列をnullにすることはできないことに注意してください。したがって、両方の文字列に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 REPLACE(REPLACE(id,',',''),'.','')
于 2013-03-20T07:43:39.217 に答える
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 に答える