Oracle SQLで文字列を自在に扱えるようになると、データ抽出や整形が格段に効率化します。
本記事では、文字列操作の3大関数「SUBSTR」「INSTR」「REPLACE」の使い方をわかりやすく解説します。
1️⃣ SUBSTR:文字列の一部を取り出す
SUBSTRは指定した位置から任意の長さの文字列を切り出す関数です。
🔸 使用例
結果:
📘 ポイント
-
開始位置は 1から数える
-
第3引数(文字数)を省略すると、開始位置以降をすべて取得
-
負の値を指定すると末尾からカウントされる
→ 結果:EF
2️⃣ INSTR:文字列の位置を検索する
INSTRは、指定した文字が出現する**位置(インデックス)**を返します。
🔸 使用例
結果:
→ 2つ目のカンマ「,」が4文字目にあることを示します。
📘 応用テクニック
INSTRとSUBSTRを組み合わせることで、区切り文字を含む文字列から特定部分を抜き出すことが可能です。
結果:
3️⃣ REPLACE:文字列の置換を行う
REPLACEは、指定した文字列を別の文字列に置き換える関数です。
🔸 使用例
結果:
📘 応用テクニック
REPLACEを使えば、不要な文字の削除も簡単に行えます。
結果:
4️⃣ 組み合わせテクニック:実用的な例
💡 メールドメインを抽出する例
|
1 2 |
SELECT SUBSTR(EMAIL, INSTR(EMAIL, '@') + 1) AS DOMAIN FROM USERS; |
結果例:
| DOMAIN | |
|---|---|
| user@example.com | example.com |
💡 ファイル名から拡張子を削除
結果例:
| FILE_NAME | BASE_NAME |
|---|---|
| report.xlsx | report |
5️⃣ まとめ
| 関数 | 用途 | 主な特徴 |
|---|---|---|
| SUBSTR | 部分文字列の取得 | 開始位置・文字数指定が可能 |
| INSTR | 指定文字の位置取得 | 出現回数も指定可能 |
| REPLACE | 文字列の置換 | 不要文字の削除にも利用可能 |
これらを組み合わせることで、Oracle SQLでの文字列処理は自由自在になります。
ログ解析、ファイル名分割、メールドメイン抽出など、日常的な業務で大活躍する関数です。
