zukucode
主にWEB関連の情報を技術メモとして発信しています。

Oracle 文字列を指定した範囲の長さに切り取る

Oracleで文字列を指定した範囲の長さで切り取る方法を紹介します。

文字数で切り取り

文字数で切り取るにはSUBSTRを使用します。

SUBSTR(値, 開始位置, 文字数)

開始位置は先頭の位置を0または1で指定します。(0と1のどちらを指定しても先頭からの指定となります)

また、開始位置からの文字数が値の長さをオーバーしてもエラーにはならずにNULLを取得します。

TABLE1
KEY1COLUMN1
112345
2あいうえお
3あ
SELECT
  COLUMN1,
  SUBSTR(COLUMN1, 1, 3) SUB1,
  SUBSTR(COLUMN1, 5, 2) SUB2
FROM
  TABLE1
取得結果
COLUMN1SUB1SUB2
123451235
あいうえおあいうお
ああnull

バイト数で切り取り

バイト数で切り取るにはSUBSTRBを使用します。

使用方法はSUBSTRと同じです。

TABLE1
KEY1COLUMN1
112345
2あいうえお
3あ
SELECT
  COLUMN1,
  SUBSTRB(COLUMN1, 1, 3) SUB1,
  SUBSTRB(COLUMN1, 5, 2) SUB2
FROM
  TABLE1
取得結果
COLUMN1SUB1SUB2
123451235
あいうえおあう
ああnull

関連記事