SQLの関数③_文字列関数
文字列関数は、文字列を操作するための関数です。今回使用するのは国テーブル、URLテーブル、
国テーブル
URLテーブル
電話番号テーブル
1.UPPERとLOWER関数
英字を大文字に変換するのがUPPER関数、小文字に変換するのがLOWER関数です。国テーブルで見てみましょう。SQLは以下のようになります。
SELECT 国名, UPPER(国名) 大文字,LOWER(国名) 子文字 FROM 国;
結果は以下のようになります。
2.SUBSTRING関数
SUBSTRING関数を使うと文字列の一部を取り出すことができます。この関数はRDBMS毎に名称が違うので注意が必要です。(OracleはSUBSTR)。URLテーブルのURL列の4文字目から6文字分を取り出すSQLは以下のようになります。
SUBSTRING(第1引数,第2引数,第3引数)
SELECT URL,SUBSTRING(URL,4,6) FROM url;
結果は以下のようになります。
SUBSTRING関数の第3引数を省略すると第2引数以降の文字列が全て出力されます。
SELECT URL,SUBSTRING(URL,4) FROM url;
結果は以下のようになります。
SUBSTRING関数と文字列連結演算子(|| 注(MySQLではCONCAT))を使用すると、データの中に文字を挿入することができます。例えば連続されて入力されている電話番号に’-‘を挿入し、わかりやすく表示することができます。以下のようなSQLを実行すると結果は以下のようになります。
SELECT TEL,CONCAT(SUBSTRING(TEL,1,2),’-‘,SUBSTRING(TEL,3,4),’-‘,SUBSTRING(TEL,7,4)) 修正後TEL FROM 電話番号;
結果は以下のようになります。
3.LENGTH関数
LENGTH関数を使うと、文字列の長さを調べることができます。国名の各文字列の長さを調べるには以下のようにします。
SELECT 国名,LENGTH(国名) FROM 国;
結果は以下のようになります。
4.RTRIM関数とLTRIM関数
RTRIM関数とLTRIM関数は、文字列の端に入力されている空白を取り除きます。RTRIM関数は右側、LRTIM関数は左側の空白をそれぞれ取り除きます。確認してみましょう。
まず、国テーブルの内、’Germany’のデータの両端に空白を2文字分挿入します。SQLは以下のようになります。
UPDATE 国 SET 国名 = ‘ Germany ‘ Where 国名 = ‘Germany’
結果は以下のようになります。’Germany’のみ実際には、’ Germany ‘となっています。
次にこの’Germany’の両端の空白を取り除きます。SQLは以下のようになります。
SELECT 国名,LTRIM(国名),RTRIM(国名) FROM 国 Where 国名 = ‘ Germany ‘;
結果は以下のようになります。
ちょっとわかりにくいですが、Germanyの両端の空白が取り除かれています。
文字列関数は以上となります。次回はSELECT文の句についてさらにいろいろは機能を見ていきます。
コメントを残す