【SQL・ORACLE】 SUBSTR関数の使い方(文字列の切り出し)
SUBSTR関数は、ORACLE に、対応しています。
SUBSTR関数 : 書式
書式 SUBSTR(strings, sposition, length)
引数 strings : 切り出す文字列
sposition : 切り出し開始位置
length:切り出す文字数
戻値 切り出された文字列
引数 strings : 切り出す文字列
sposition : 切り出し開始位置
length:切り出す文字数
戻値 切り出された文字列
SUBSTR関数 : 解説
SUBSTR関数は、文字列の一部の文字を取得する関数です。引数「strings」で指定した文字列の、引数「sposition」で指定した位置から、引数「length」で指定された文字数を切り出します。このとき、ひらがなやカタカナ、漢字といった2バイト文字も1文字として数えます。
SUBSTR関数の処理
もし、切り出す文字数が足りない場合は、文字列の終端までが切り出されます。
切り出す開始位置が文字列の範囲外の場合にはNULLが返されます。
SUBSTR関数 : 使用例
SQL文
SELECT 元文字列, 開始位置, 選択文字数,
SUBSTR(元文字列, 開始位置, 選択文字数) 結果
FROM substr_db;
SELECT 元文字列, 開始位置, 選択文字数,
SUBSTR(元文字列, 開始位置, 選択文字数) 結果
FROM substr_db;
実行結果
文字列 | 開始位置 | 選択文字数 | 結果 |
---|---|---|---|
abcdef | 1 | 3 | abc |
abcdef | 3 | 2 | cd |
abcdef | 3 | 5 | cdef |
abcdef | 10 | 2 | |
あいうえお | 2 | 2 | いう |
結果の下から2行名の空白のところは、切り出し開始位置が、元文字列の範囲外になるので、「NULL」が返されています。
ORACLEでは、SUBSTRB関数といったものが用意されています。この関数は引数は同じなのですが、数値は文字数単位ではなくバイト単位で指定するといった違いがあります。
MS-SQLでは、SUBSTRING関数を使って同じことができます。