「データ抽出」タグアーカイブ

Oracleで文字列操作を極める:SUBSTR・INSTR・REPLACEの活用術

Oracle SQLで文字列を自在に扱えるようになると、データ抽出や整形が格段に効率化します。
本記事では、文字列操作の3大関数「SUBSTR」「INSTR」「REPLACE」の使い方をわかりやすく解説します。


1️⃣ SUBSTR:文字列の一部を取り出す

SUBSTRは指定した位置から任意の長さの文字列を切り出す関数です。

🔸 使用例

結果:

📘 ポイント

  • 開始位置は 1から数える

  • 第3引数(文字数)を省略すると、開始位置以降をすべて取得

  • 負の値を指定すると末尾からカウントされる

→ 結果:EF


2️⃣ INSTR:文字列の位置を検索する

INSTRは、指定した文字が出現する**位置(インデックス)**を返します。

🔸 使用例

結果:

→ 2つ目のカンマ「,」が4文字目にあることを示します。

📘 応用テクニック

INSTRSUBSTRを組み合わせることで、区切り文字を含む文字列から特定部分を抜き出すことが可能です。

結果:


3️⃣ REPLACE:文字列の置換を行う

REPLACEは、指定した文字列を別の文字列に置き換える関数です。

🔸 使用例

結果:

📘 応用テクニック

REPLACEを使えば、不要な文字の削除も簡単に行えます。

結果:


4️⃣ 組み合わせテクニック:実用的な例

💡 メールドメインを抽出する例

結果例:

EMAILDOMAIN
user@example.comexample.com

💡 ファイル名から拡張子を削除

結果例:

FILE_NAMEBASE_NAME
report.xlsxreport

5️⃣ まとめ

関数用途主な特徴
SUBSTR部分文字列の取得開始位置・文字数指定が可能
INSTR指定文字の位置取得出現回数も指定可能
REPLACE文字列の置換不要文字の削除にも利用可能

これらを組み合わせることで、Oracle SQLでの文字列処理は自由自在になります。
ログ解析、ファイル名分割、メールドメイン抽出など、日常的な業務で大活躍する関数です。