2

文字列を更新しようとしていますが、見つかった文字列に続く残りの値も消去する必要があります。最後の値は変更されるため、置換は使用できませんが、中間部分は多くのレコードで同じままです。文字列内の正確な値または位置がわからない場合に、文字列の末尾部分を削除するための投稿を見たことがありません。
SQL Developer を介してデータベースに Oracle を使用してデータを更新しています。

"keep this data" "search on keyword" "wipe out trailing data"     "result data"
xyz                 @                     psu.edu                 xyz

列データ値 = xyz@psu.edu

「@%」のような列名を持つレコードを検索します

削除する "@%"

最終結果値 = xyz

列データ値 = ABCabc123

「abc%」のような列名を持つレコードを検索します

「abc%」を削除

最終結果値 = ABC

このタイプの更新に関する回答は見たことがありません。助けてください!

4

2 に答える 2

0
select substr('xyz@psu.edu',1, instr('xyz@psu.edu','@') - 1) from dual

select substr('ABCabc123',1, instr('ABCabc123','abc') - 1) from dual
于 2012-11-28T15:35:32.920 に答える
0

必要な文字列が見つからない場合にチェックする必要があるかもしれません:

SELECT CASE
          WHEN INSTR('xyz@psu.edu','@', 1, 1) > 0
             THEN SUBSTR('xyz@psu.edu',1,INSTR('xyz@psu.edu','@', 1, 1)-1)
             ELSE 'xyz@psu.edu'
          END as "Result Data"
FROM DUAL
于 2012-11-28T15:55:07.563 に答える