Oracle 文字列を指定した範囲の長さに切り取る
Oracleで文字列を指定した範囲の長さで切り取る方法を紹介します。
文字数で切り取り
文字数で切り取るにはSUBSTRを使用します。
SUBSTR(値, 開始位置, 文字数)
開始位置は先頭の位置を0または1で指定します。(0と1のどちらを指定しても先頭からの指定となります)
また、開始位置からの文字数が値の長さをオーバーしてもエラーにはならずにNULLを取得します。
| KEY1 | COLUMN1 |
|---|---|
| 1 | 12345 |
| 2 | あいうえお |
| 3 | あ |
SELECT
COLUMN1,
SUBSTR(COLUMN1, 1, 3) SUB1,
SUBSTR(COLUMN1, 5, 2) SUB2
FROM
TABLE1| COLUMN1 | SUB1 | SUB2 |
|---|---|---|
| 12345 | 123 | 5 |
| あいうえお | あいう | お |
| あ | あ | null |
バイト数で切り取り
バイト数で切り取るにはSUBSTRBを使用します。
使用方法はSUBSTRと同じです。
| KEY1 | COLUMN1 |
|---|---|
| 1 | 12345 |
| 2 | あいうえお |
| 3 | あ |
SELECT
COLUMN1,
SUBSTRB(COLUMN1, 1, 3) SUB1,
SUBSTRB(COLUMN1, 5, 2) SUB2
FROM
TABLE1| COLUMN1 | SUB1 | SUB2 |
|---|---|---|
| 12345 | 123 | 5 |
| あいうえお | あ | う |
| あ | あ | null |