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 |