目次
Upper関数
upper関数を使うと指定した文字列が大文字になって戻される。試しに例文を用いてSQLを実行してみよう。
例文:EMP表に保存されているENAME列をUPPER関数を使って大文字で取りだす。
1 |
select upper(ename) from emp; |
上の写真では、emp表からename列の値を取り出している。SMITH〜SAMUELという名前が全て大文字で取り出されているのが分かる。EMP表のename列にはSMITH〜SAMUELまで計13つの名前が保存されていることが分かる。
Lower関数
Lower関数を使うと取りだす際に文字列を小文字に変換して取りだすことができる。
例文:ダミー表であるDual表を使い、文字列「SMALL CHARACTER」を小文字にして取りだす。
1 |
select lower("SMALL CHARACTER") from dual; |
lower(文字列)で指定した文字列を小文字にして戻すことができる。SMALL CHARACTERを小文字にして取り出しているのが分かる。
Initcap関数
Inticap関数を使うと取りだす際に文字列"test character"の先頭文字を大文字にすることができる。
例文:emp表に保存されている文字列”test character”をinticap関数で先頭語を大文字にして取りだす
1 |
select inticap("test character") from emp; |
initcap関数を使うと単語の先頭の文字を大文字にすることができる。initcap(文字列)で指定している文字列は全て小文字であるが、取り出される際に単語の先頭の文字が大文字になって取り出される。
Concat関数(文字列1,文字列2)
Contact関数を使うと二つの文字列のデータを連結して一つのデータとして取りだす事ができる。
例文 : ダミー表であるdual表を使い二つの文字列"Oracle"と”Server”を連結して取り出す。
1 |
Select contact(‘Oracle’ , ’Server’) from dual; |
実際にSQL PLUSを使ってコードを実行して見ると、次のようになる。
concat関数は concat(文字列1、文字列2)で使用することができる。文字列1と文字列2が連結して取り出される。上の写真のように、文字列1と文字列2が組み合わさって「OracleServer」という文字が取り出される。
Substr関数
Substr関数を使うと文字列の中で取りだす部分を指定できる。
substr関数の基本形
1 |
Select substr ('文字列',m,n ) from 表名; |
指定した表に入っている文字列の先頭文字からm番目からn文字分取り出す。
1 |
Select substr ('文字列',m) from 表名; |
指定した表に入っている先頭文字からm番目からn文字分取り出す。
substr関数の例コード
例文:ダミー表であるdual表を使い、"Oracle Server"という文字列の先頭文字から2番目の文字から3文字分とdual表の中の"Oracle Server"という文字列の先頭文字から2番目の文字から最後の文字まで取り出す。
1 |
select substr('Oracle Server',2,3), substr('Oracle Server',2) from dual; |
上記のコードをSQL Plusを実行すると以下のような実行結果を得られる。
解説:ダミー表であるdual表を使い、文字列'Oracle Server'の先頭文字から二番目から3文字分('Oracle Server')である[rac]を取り出している。
次にdual表に入っている文字列'Oracle Server'の先頭文字から二番目から最後の文字('Oracle Server')である[racle Server]まで取り出している。
length関数
length関数を使うと文字列の文字数をカウントして値を取り出す事ができる。
length関数の基本コード
1 |
select length('文字列') from 表名; |
文字列の前にlength関数を置く事で表名の中から文字列を指定してカウントした数字を取りだす事ができる。結果として取り出されるのは文字列の文字数である。
length関数の例コード
基本コードだけではどのような結果が取り出されるか想像しにくいので、例文に従い以下のようなコードを実行してみましょう。
例文:dual表の中の'Oracle Server'の文字数をカウントして取りだす。
1 |
select length('Oracle Server') from dual; |
上記のコードをSQL Plusで実行すると以下のような結果が得られます。
解説:dual表の中にあるデータ'Oracle Server'の文字数をlength関数によりカウントを行いselect句でデータを取り出している。今回、OracleとServerの間にはスペースキーが含まれているので、スペースキー1文字も合わせて13という数字がカウントされ取り出されます。
Instr関数
instr関数は、「指定した文字間パターンが現れる位置」を戻す関数である。引数として受け入れた文字列1のm文字列目から文字列2を検索し、n回目に一致した文字列の位置を戻す。
Instr関数の基本形
1 |
select instr("文字列1","文字列2",m,n) from dual表; |
Select句にInstr関数をつけ加え、ダミー表であるdual表を使い、指定した文字列1の中で文字列2が現れる数字を戻す事ができます。
Instr関数の例コード
例文:文字列1”Oracle Server”の文字列2”er”が現れる位置は何番目かIstr関数とdual表を使って実行してください。
1 2 3 4 5 |
select instr("Oracle Server","er",1,2), Instr("Oralce Server","er",1,2) from dual表; |
以上のコードを実行すると次のようになる。
lpad関数
lpad関数は引数として受け入れた文字列がn文字になるように、「埋め込み文字」を埋め込んで戻す関数である。lpad関数では文字列の左側に「埋込み文字」が埋め込まれる。
Ipad関数の基本形
1 |
select Ipad(列名,数字n,'*') from emp; |
Ipad関数を使い、列名の文字数が数字nになるように足りていない文字数分*を付け加える。
Ipad関数の例コード
例文:emp表とIpad関数を使ってename列を10文字で取りだす。足りていない文字数は*で埋めて取りだす。
1 |
select Ipad ( ename, 10 , '*') from emp; |
以上のコードをSQL PLUSで実行すると次のようになる。
解説:Ename列には13つの名前データが保存されていた。それぞれ10文字を満たさない名前がほとんどなので*アスタリスクで埋め込みされ10文字に揃えられて取り出されている。
Rpad関数
rpad関数は引数として受け入れた文字列がn文字になるように、「埋込み文字」を埋め込んで戻す関数である。rpad関数は「埋込み文字」が埋め込まれる。
Trim関数
Trim関数は、引数として受け入れた文字列の前後にある「削除文字」(任意の1文字)を取り除いて戻す関数である。半角スペースが取り除かれる。
引数として受け入れた文字列の前後にある「削除文字」(任意の一文字)を取り除いて戻す関数である。削除文字が省略された場合は、半角スペースが取り除かれる。
replace関数
replace関数は、引数として受け入れた文字列のうち、変更前文字列を変更後文字列に置き換えた文字列を戻す関数である。
round関数
round関数は指定した値mの小数点以下n桁に四捨五入して取りだす関数です。引数nが省略された場合は整数値に四捨五入する。
round関数の定型文
1 |
select round(m,n) from dual; |
round関数で指定した値mの小数点n桁以下を四捨五入してselect句で取り出します。
round関数の例コード
例文:round関数を用いて値12345.678の小数点以下1桁に四捨五入して取り出します。round関数を用いて値12345.678の小数点以下0桁に四捨五入して取り出します。round関数を用いるが小数点以下n桁を指定せずmにあたる値12345.678を四捨五入して取り出します。
1 |
select round(12345.678,1),round(12345.678,0)round(12345.678) from dual; |
上記のコードを実際にSQL PLUSを用いて実行します。以下のようになります。
1 |
Round(数値[,n]) |
解説:select round(12345.678,1)で12345.678の小数点1桁目である6に四捨五入して12345.7を取り出しています。select round(12345.678,0)で12345.678の小数点0桁目である5に四捨五入して12346を取り出しています。select round(12345.678)ですが、引数nを指定していないので整数値に四捨五入して12346が取り出されています。
Trunc関数
trunc関数は指定した値mを,指定した値nまで小数点を有効とする関数です。それでは基本文を見ていきましょう。
Trunc関数の基本型文
1 |
select trunc(m,n) from dual; |
値の前にtrunc関数を置く事によって、select句で値を取り出す前に指定した値mを指定した値nまでの小数点まで有効にし以下は切り捨てします。
trunc関数の例題コード
例文:値12345.678の小数点2桁まで取りだす。値12345.678の小数点-1桁まで取りだす。値12345.678を取りだす。
1 |
select trunc(12345.678,2), trunc(12345.678,-1), trunc(12345.678) from dual; |
上記のコードを実際にSQL PLUSで実行して結果を見てみましょう。
解説 : trunc関数によって12345.678の小数点2桁までの「12345.67」をselect句で取り出しています。
trunc関数によって12345.678の小数点-1桁の[12345.678]まで有効にしあとは切り捨てて取り出しています。trunc関数によって12345.678の整数部分のみ取り出しています。
mod関数
mod関数は指定した数字mを指定した数字nで割った余りの値を計算したい場合に使います。それでは基本コードを見ていきましょう。
mod関数の基本コード
1 |
select mod (m,n) from 表名; |
mod関数で指定した数字mを指定した数字nで割った余りの数字をselect句で取りだします。
mod関数の例コード
例文 : 10を3で割った余りの値を取り出します。
1 |
select mod (10,3) from dual; |
上記のコードをSQL文で実行すると以下のような結果が得られます。
解説:10を3で割った余りの値である1が取り出されました。