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

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

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

文字数で切り取り

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

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

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

また、開始位置からの文字数の長さをオーバーしてもエラーにはならずに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

関連記事