トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

2-1-11 文字列の末尾から文字を取得

SQLパズル

Right4Table
Val
-----
123
1234
12345
null

文字列の末尾から4文字取得する。

出力結果
Val    末尾4文字
-----  ---------
123    123
1234   1234
12345  2345
null   null


データ作成スクリプト

create table Right4Table(Val) as
select '123'   from dual union
select '1234'  from dual union
select '12345' from dual union
select null    from dual;


SQL

--■■■substr関数を使う方法1■■■
select val,substr(val,greatest(-4,-Length(val))) as "末尾4文字"
from Right4Table;

--■■■substr関数を使う方法2■■■
select val,nvl(substr(val,-4),val) as "末尾4文字"
from Right4Table;

--■■■正規表現を使う方法(10g以降)■■■
select val,RegExp_Substr(val,'.{0,4}$') as "末尾4文字"
from Right4Table;


解説

substr関数の第3引数を省略して、第2引数に負数を使うと、
VBのRight関数のような使い方ができます。

@IT 使うほどに良さが分かる正規表現
@IT SQLクリニック