OracleのSUBSTR、SUBSTRB 文字列を切り取る【SQL】

文字列を切り取るSUBSTR、SUBSTRB

Oracleで文字列を切り取りするには、「SUBSTR」「SUBSTRB」を使います。

SUBSTR(文字列, 開始桁, 切り取り文字数)

  • 文字列の指定桁数から指定文字数を切り取ります

SUBSTRB(文字列, 開始桁, 切り取りバイト数)

  • 文字列の指定桁数から指定バイトを切り取ります

文字数で切り取るSUBSTR、バイト数で切り取るSUBSTRBです。

例1. SUBSTRで文字列を切り取るパターン

「SUBSTR(‘佐藤太郎’,1,2)」で、「佐藤太郎」の1文字目から2文字分を切り取りました。

「SUBSTR(‘12345’,1,2)」で、「12345」の1文字目から2文字分を切り取りました。

例2. SUBSTRで文字列の指定桁以降を切り取るパターン

第3パラメータを省略すると、開始桁以降の文字列が返されます。

「SUBSTR(‘佐藤太郎’,3)」では「佐藤太郎」の3文字目以降をすべて切り取りました。

「SUBSTR(‘12345’,3)」では「12345」の3文字目以降をすべて切り取りました。



例3. SUBSTRBで文字列を切り取るパターン

「SUBSTRB(‘佐藤太郎’,1,2)」は全角「佐藤太郎」の1バイト目から2バイトを切り取ります。2バイトで切り取るので漢字では1文字が返されます。

「SUBSTRB(‘12345’,1,2)」は「12345」の1バイト目から2バイトを切り取ります。

例4. SUBSTRBで文字列を切り取りできないパターン

「SUBSTRB(‘佐藤太郎’,1,1)」は全角「佐藤太郎」の1バイト目から1バイトを切り取ります。

「佐」から1バイト切り取ることはできないので結果は返されませんでした。

SUBSTR・SUBSTRBで文字列から任意の文字数・バイト数を切り取りするパターンとして4パターンを取りあげました。

以上、Oracleで文字列で切り取るSUBSTR・SUBSTRBでした。