SQL関数の中の文字データに関する文字関数を説明します。文字関数とは、引数に文字データを受け取り、文字データまたは数値を返す関数です。
関数の説明用にempテーブルを作成する
文字関数を試すために、以下のSQLを実行し、empテーブルを作成します。
テーブルの作成
CREATE TABLE emp (
id NUMBER(6),
name VARCHAR2(10),
department_id NUMBER(10),
job_id NUMBER(4)
);
データの挿入
INSERT INTO emp
VALUES(1,'sato','100','10');
INSERT INTO emp
VALUES(2,'suzuki','100','10');
INSERT INTO emp
VALUES(3,'yamada','101','3');
INSERT INTO emp
VALUES(4,'tanaka','102','4');
処理の確定
COMMIT;
CONCAT(コンキャット)関数
引数で指定した2つの文字列を結合します。結合できる文字列の個数が2つであることに注意。
※連結演算子「||」では結合できる文字列の個数に制限はありません。
CONCAT関数:構文
CONCATE(文字列1, 文字列2)
使用例)
select CONCAT(name,'さん') from emp;
豆知識:ExcelのCONCATENATE関数
Excelには文字列を結合する関数としてCONCATENATE関数があります。
=CONCATENATE(文字列,文字列)
SQLのCONCAT関数で指定できる文字列は2つですが、ExcelのCONCATENATE関数では文字列を最大255個指定できます。
LENGTH(レングス)関数
引数で指定した文字列の長さを文字数で表します。戻り値は文字型の値です。
※バイト数ではありません。文字数です。
※空白や-(ハイフン)も1文字として表します。
※全角・半角の区別はありません。
LENGTH関数:構文
LENGTH(文字列)
使用例)
select LENGTH (name) from emp;
豆知識:ExcelのLEN関数
ExcelのLEN関数を使うと全角・半角関係なく、文字列の文字数を取得することができます。
=LEN(文字列)
LEN関数は句読点、スペースなども文字としてカウントします。
UPPER(アッパー)関数
引数に指定した文字を大文字に変換します。戻り値は文字型。
UPPER関数:構文
UPPER(文字列)
使用例)
select UPPER(name) from emp;
豆知識:ExcelのUPPEER関数
ExcelのUPPER関数も文字列を大文字に変更します。
=UPPER(文字列)
LOWER(ロウアー)関数
引数に指定した文字列を小文字に変換します。戻り値は文字型。
LOWER関数:構文
LOWER(文字列)
使用例)
select LOWER('ABCDE') from dual;
豆知識:ExcelのLOWER関数
ExcelのLOWER関数も文字列を小文字に変更します。
=LOWER(文字列)
INITCAP(イニットキャップ)関数
引数に指定した各単語の先頭の文字を大文字に変換、2文字目意向を小文字に変換します。スペースや-(ハイフン)など英数字以外の記号で区切られたものを1つの単語とみなすため、スペースや-(ハイフン)の次の文字は大文字になります。
戻り値は文字列型。
INITCAP関数:構文
INITCAP(文字列)
使用例)
select INITCAP('abc def-gh i j') from dual;
A、D、G、I、Jが大文字になっています。
豆知識:ExcelのPROPER関数
Excelでは、PROPER関数がINITCAPと同じ働きをします。先頭文字を大文字にし、2文字目以降を小文字にします。スペースや英語以外の文字で区切られ、単語とみなし、大文字、小文字の変換をします。