10

入力データ:

abcdef_fhj_viji.dvc

期待される出力:

fhj_viji.dvc

トリミングする部分は一定ではありません。

4

3 に答える 3

18

REPLACEメソッドを使用する

Select REPLACE('abcdef_fhj_viji.dvc','abcde','')

テーブルにこのクエリが必要な場合:

Select REPLACE(column,'abcde','') from myTable

更新の場合:

UPDATE TABLE
   SET column = REPLACE(column,'abcde','') 
于 2013-11-08T05:55:38.813 に答える
4
select substr('abcdef_fhj_viji.dvc',instr('abcdef_fhj_viji.dvc','_')+1) from dual

したがって、そのすべては関数に依存しINSTR、どの位置からどのオカレンスかを定義し、インデックスを取得してそのインデックスを渡してSUBSTR文字列を取得します。

于 2013-11-08T06:29:21.813 に答える
0

あなたは多くの情報を提供していないので、私はいくつかを仮定します。

ある文字列のプレフィックスを削除したいとしましょう。これを行う良い方法は、正規表現を使用することです。パターンに応じて文字列の部分文字列を見つけ、それを別の文字列に置き換えることができる regexp_replace と呼ばれる関数があります。PL/SQL では、次のように、regexp_replace を使用して自分で関数を作成できます。

function deletePrefix(stringName in varchar2) return varchar2 is
begin
  return regexp_replace(stringName, '^[a-zA-Z]+_', '');
end;

または、次のような単純なSQLでこれを使用します。

regexp_replace(stringName, '^[a-zA-Z]+_', '');

stringName処理する文字列であり^[a-zA-Z]+_、プレフィックスに含まれる文字に応じた部分です。ここでは、大文字と小文字のみを含めました。

于 2020-12-07T09:04:46.510 に答える