Oracle SQL 関数 : SUBSTR : 文字列切出し
stringRet := SUBSTR( stringSrc , numberPos [ , numberLen ] );
SUBSTRは文字列stringSrcのnumberPos番目からnumberLen文字分の文字列を返します。
(stringSrcの文字列の数え方は先頭が1として処理します。)
numberPosが0(ゼロ)の場合は1として処理します。
numberPosが正の数の場合はstringSrcの先頭から数え,numberPosが負の数の場合はstringSrcの
最後から数えます。
numberLenを指定しない場合は、stringSrcのnumberPos番目から最後までの文字列を返します。
SQL> SELECT SUBSTR( 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' , 10, 5), |
2 SUBSTR( 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' , 10), |
3 SUBSTR( 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' , 0, 5), |
4 SUBSTR( 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ,-5, 4) |
SUBST SUBSTR('ABCDEFGHI SUBST SUBS |
JKLMN JKLMNOPQRSTUVWXYZ ABCDE VWXY |
指定文字列に 全角文字 が指定された場合は、全角文字も1文字は1個として扱う様です。
SQL> SELECT SUBSTR( 'あいうえおかきくけこさしすせそ' , 10, 5), |
2 SUBSTR( 'あいうえおかきくけこさしすせそ' , 10), |
3 SUBSTR( 'あいうえおかきくけこさしすせそ' , 0, 5), |
4 SUBSTR( 'あいうえおかきくけこさしすせそ' ,-5, 4) |
SUBSTR( 'あいうえおか SUBSTR(' あいうえおかきく SUBSTR( 'あいうえおか SUBSTR(' あいうえ |
さらに指定文字列に 半角、全角文字 が混在していても、うまくいく様です。
SQL> SELECT SUBSTR( 'あいうabえおかき12くけ345こさしすせそ' , 10, 5), |
2 SUBSTR( 'あいうabえおかき12くけ345こさしすせそ' , 10), |
3 SUBSTR( 'あいうabえおかき12くけ345こさしすせそ' , 0, 5), |
4 SUBSTR( 'あいうabえおかき12くけ345こさしすせそ' ,-8, 4) |
SUBSTR( 'あいう SUBSTR(' あいうABえおかき12くけ345こさしす SUBSTR( 'あいうAB SUBSTR(' あい |
12くけ3 12くけ345こさしすせそ あいうab 45こさ |
本書用のWebアプリを使ってSQLを実行し学習していきます。初心者の方に分かりやすく、図表を多く使って解説されています。 学習の最後には200問越えのドリルが付いていてSQLのスキルが試せる様になっています。