Oracle SQL 文字列を切り出す(SUBSTR)

OracleのSQLのSUBSTRで、文字列を切り出すサンプルです。

目次

前から検索 文字を切り出す(SUBSTR)
  文字列の途中から最後までを取得する(引数2つ)
  文字列の後ろから取得する

文字を切り出す(SUBSTR)

SUBSTR(文字列,開始の位置[,文字数])
  • 引数の文字列に対して、開始の位置から文字数分の文字を切り出します。
  • 文字数は省略可能です。その場合、開始の位置から最後まで切り出します。
  • 先頭の1文字目の位置は1です。
  • 存在しないときは、0を返します。

SUBSTR関数のサンプルです。

SELECT SUBSTR('abcabc',1,1) FROM DUAL; --a
SELECT SUBSTR('abcabc',1,2) FROM DUAL; --ab
SELECT SUBSTR('abcabc',1,3) FROM DUAL; --abc
SELECT SUBSTR('abcabc',2,1) FROM DUAL; --b
SELECT SUBSTR('abcabc',9,1) FROM DUAL; --null

SELECT SUBSTR('あいうあいう',1,1) FROM DUAL; --あ
SELECT SUBSTR('あいうあいう',1,2) FROM DUAL; --あい
SELECT SUBSTR('あいうあいう',1,3) FROM DUAL; --あいう
SELECT SUBSTR('あいうあいう',2,1) FROM DUAL; --い

1,4行目は、指定の位置から1文字取得しています。
2,3行目は取得する文字数を増やしています。
5行目は、該当する文字がないのでnullを返します。
7行目以降は、全角の日本語文字です。

文字列の途中から最後までを取得する(引数2つ)

SUBSTR関数の引数が2つあるサンプルです。

SELECT SUBSTR('あいうえお',2) FROM DUAL; --いうえお
SELECT SUBSTR('あいうえお',3) FROM DUAL; --うえお
SELECT SUBSTR('あいうえお',4) FROM DUAL; --えお

2つめの引数は検索開始位置で、3つめの引数がない場合は、最後の文字までが対象になります。

文字列の後ろから取得する

文字列の後ろから取得するサンプルです。

SELECT SUBSTR('あいうえお',-1) FROM DUAL; --お
SELECT SUBSTR('あいうえお',-2) FROM DUAL; --えお
SELECT SUBSTR('あいうえお',-3) FROM DUAL; --うえお

文字列の後ろから取得するには、引数にマイナス値を指定します。

関連の記事

Oracle 文字列を操作するサンプル

△上に戻る