私は以下のようなテーブルを持っています:
Last_name First_name
aaaa bbb -
aaa bbbb -
aaa gggg j
substr 関数を使用して - を削除し、 - でfirst_name
ない場合は文字を保持するにはどうすればよいですか?
ありがとう
文字列の右側から削除する文字を 2 番目のパラメーターとして指定して、rtrim()関数を使用できます。
SQL> with t1(Last_name, First_name) as(
2 select 'aaaa', 'bbb -' from dual union all
3 select 'aaa', 'bbbb -' from dual union all
4 select 'aaa', 'gggg j' from dual
5 )
6 select last_name
7 , rtrim(first_name, ' -') as first_name
8 from t1
9 ;
結果:
LAST_NAME FIRST_NAME
--------- ----------
aaaa bbb
aaa bbbb
aaa gggg j
Oracle 10g バージョンからは、regexp_replace()正規表現関数も使用できます。
select last_name
, regexp_replace(first_name, '\s*-\s*$') as first_name
from t1
結果:
LAST_NAME FIRST_NAME
--------- ----------
aaaa bbb
aaa bbbb
aaa gggg j