本記事では、SUBSTRなどの文字列操作関数について解説します。
前回はCASE式について解説しました。
今回では、文字列操作関数を使って、文字列を抜き出したり置換したりする方法についてみていきましょう。
SQLの文字列操作関数の使い方
文字列操作関数の種類と具体的な使い方をみていきましょう。
本記事では、以下の文字列操作関数について解説します。
- SUBSTRで文字列の一部を抜き出す
- REPLACEで文字列を置換する
- REVERSEで文字列を逆順に表示する
- TRIMで左右の空白を削除する
- RTRIMで右側のみの空白を削除する
- ASCIIで文字列をASCIIコードに置換する
- FORMATで指定した書式に変換する
- SPACEで指定した回数の半角スペースを作る
SUBSTRで文字列の一部を抜き出す
SUBSTRを使うことで、文字列の一部を抜き出すことが可能です。
○コード例
SELECT SUBSTR('abcabc',3);
○実行結果

上記のSQL文では、SUBSTRを使って「abcabc」の中から「cabc」を抜き出しています。
SUBSTRの第2引数に数を指定することで、その位置以降の文字列を抜き出せます。
また、以下のように、引数を3つ使うことも可能です
○コード例
SELECT SUBSTR('476831',2,3);
○実行結果

上記のSQL文は2番目から3つの文字列を抜き出しています。
このようにSUBSTRを使うことで、文字数から指定した箇所だけを抜き出すことが可能です。
REPLACEで文字列を置換する
REPLACEを使うと、文字列を置換することが可能です。
○コード例
SELECT REPLACE('東京出身です', '東京', '大阪');
○実行結果

上記のSQL文では「東京出身です」の「東京」の部分を「大阪」に置換して表示しています。
このように、REPLACEを使えば指定した箇所の置換が可能てす。
REVERSEで文字列を逆順に表示する
REVERSEを使えば、指定した文字列を逆順に表示可能です。
○コード例
SELECT REVERSE('123456789');
○実行結果

上記のコードは、REVERSEを使って「987654321」と逆順に表示しています。
TRIMで左右の空白を削除する
TRIMを使うと、左右の「スペース」を削除して表示できます。
○コード例
SELECT TRIM(' apple ');
○実行結果

上記のSQL文では左右の半角スペースを削除して「apple」と表示していますね。
また、TRIMでは、スペース以外のものも両端から削除することが可能です。
○コード例
SELECT TRIM('$' FROM '$apple$');
○実行結果

上記のコードでは「$apple$」の両端の「$」を削除しています。
スペース以外を削除する場合「{削除したい文字列} FROM {文字列}」というふうに、FROMを使って記述する必要があります。
RTRIMで右側のみの空白を削除する
RTRIMを使うと、右側のスペースのみを削除できます。
○コード例
SELECT RTRIM(' apple ');
○実行結果

上記のSQL文では、RTIMEを使って、右側のスペースを削除し、左側は残しています。
TRIM関数と挙動は似ていますが、右側だけ削除する点は注意です。
RTIMEは「R」は「right」の略ですので、そのように覚えましょう。
また、LTIMEという関数もあり、こちらは左側だけを削除するものです。
LTIMEの「L」は「left」ですね
ASCIIで文字列をASCIIコードに置換する
ASCIIは、文字列をASCIIコードに置換する関数です。
○コード例
SELECT ASCII("A");
○実行結果

上記のSQL文はASCII関数を使い「A」をASCIIコードである「65」に置換しています。
FORMATで指定した書式に変換する
FORMATは、指定した文字列や数値を特定の書式に変換できる関数です。
○コード例
SELECT FORMAT(111111, '#,###');
○実行結果

上記のSQL文は数値を「,」区切りに変更しています。
「#,###」と指定することで、3桁ごとに「,」で区切ることが可能です。
SPACEで指定した回数の半角スペースを作る
SPACE関数を使うことで、指定した回数だけ半角スペースを作ることが可能です。
○コード例
SELECT SPACE(3);
○実行結果

上記のSQL文ではSPACE関数に「3」が指定されています。
そのため、3つの半角スペースが作成されています。
まとめ
本記事では、文字列操作関数ついて解説しました。
SQLには便利な文字列操作関数が数多くあるということが、お分かり頂けたかと思います。
他にも文字列操作関数はありますが、今回紹介したものを覚えておけば、とりあえず問題ありません。
今回で、SQLの初級編は全て完了しました、お疲れさまでした!