とあるITエンジニアたちの備忘録

新米エンジニア5人がお送りする、ちょっとためになる話

単一行関数 ~文字関数の紹介~ 後編

みなさん、こんにちは。

どうも、さいばーきゃっとです。

今回は、前回の続きになり、各文字関数を解説していきます。

前回の記事

itsoldier0901.hatenablog.com

 

文字関数(おさらい)

文字関数は、文字データ(CHAR型、VARCHAR型)を受け取り、文字データ(一部数値データもあり)で戻す関数です。

今回は、下記の表を使用して、各文字関数の構文と使用方法を説明していきます。

f:id:cloudy0901:20160809011338p:plain

 

INSTR関数

INSTR関数は、「指定した文字パターンが現れる位置」を戻す関数です。

引数として受け入れた文字列1のm文字目から文字列2を検索し、n回目に一致した文字列の位置(先頭からの文字数)を戻します。

※)mおよびn省略可能。その場合、デフォルト値は「1」です。

※)文字列1の中に文字列2がない場合が、「0」を戻します。

f:id:cloudy0901:20160816061928p:plain

以下の例では、INSTR関数の引数に、「英語表記(大)」列を指定して、「LE」の文字パターンが現れる位置を表示しています。

f:id:cloudy0901:20160816062632p:plain

上記の表を見てわかるように、

・「APPLE」の文字列の中から「LE」が現れるのは、「4」文字目からなので、「4」と表示されます。

・「GOOGLE」の文字列の中から「LE」が現れるのは、「5」文字目からなので、「5」と表示されます。

・「MICROSOFT」の文字列の中には「LE」が存在しないので、「0」と表示されます。

 

LPAD関数

LPAD関数は、引数として受け入れた文字列がn文字になるように、左側に「埋め込み文字」を埋め込んで戻す関数です。

f:id:cloudy0901:20160816063558p:plain

以下の例では、LPAD関数の引数に、「英語表記(大)」列を指定して、左側に「*」埋め込んで、文字全体を「15」文字にして表示しています。

f:id:cloudy0901:20160816063924p:plain

 

RPAD関数

 RPAD関数は、引数として受け入れた文字列がn文字になるように、右側に「埋め込み文字」を埋め込んで戻す関数です。

f:id:cloudy0901:20160816064051p:plain

以下の例では、RPAD関数の引数に、「英語表記(大)」列を指定して、右側に「*」埋め込んで、文字全体を「15」文字にして表示しています。

f:id:cloudy0901:20160816064131p:plain

 

REPLACE関数

REPLACE関数は、引数として受け入れた文字列のうち、変更前文字列を変更後文字列に置き換えた文字列を戻す関数です。

※)変更後文字列が省略された場合は、文字列から変更前文字列を削除した文字列を戻します。

f:id:cloudy0901:20160816065045p:plain

以下の例では、REPLACE関数の引数に、「英語表記(大)」列を指定して、「英語表記(大)」列の値の「LE」を「る」に置き換えて表示しています。

f:id:cloudy0901:20160816070001p:plain

上記の表を見てわかるように、

・「APPLE」の文字列から「LE」を「る」に置き換えて表示します。

・「GOOGLE」の文字列から「LE」を「る」に置き換えて表示します。

・「MICROSOFT」の文字列の中には「LE」が存在しないので、何も置き換えません。

 

また、REPLACE関数は、置換だけではなく、削除としても使用することができます。

以下の例では、REPLACE関数の引数に、「英語表記(大)」列を指定して、「英語表記(大)」列の値の「LE」を削除して表示しています。

f:id:cloudy0901:20160816070530p:plain

上記のSELECT文では、変更後文字列を指定していません。この場合、文字列から変更前文字列を削除して表示します。

 

まとめ

いかがでしたでしょうか。

3週に渡って、文字関数について紹介させていただきました。

今回からもわかるように、関数の種類はとても多いです。

SQLPLUSを使用して、実際に関数を使用してみるのが、一番早く身につく近道だと思います。

 

次回からは数値関数について、解説していきます。