今日も僕は定時で帰る!!

Oracle, 関数

Oracleの文字列関数(連結、置換、切り取り)

Oracleの文字列関数(連結、置換、切り取り)の使い方をまとめていきます。

広告



文字列同士を連結する

文字列同士を連結する場合、CONCAT関数を使用します。

文法 CONCAT(str1, str2)
引数 str1:文字列
str2:str1に連結する文字列
戻り値 文字列str1と文字列str2を連結した値を返却します。
※3つ以上を連結する場合はCONCAT関数の中にCOCAT関数を埋め込み使用します。
※||を使用しても文字列を連結できます。

使用例

Class NAME
1 Suzuki
1 Yamashita
2 Yamada
2 Tanaka
2 Aoyama

 

文字列を置換する(NULL値を別の値に置き換える)

NULLを別の値に置き換える場合、NVL関数、NVL2関数を使用します。

文法 NVL(column, str)
引数 column:項目
str:置換文字列
戻り値 columnがNULL値以外の場合はcolumn、NULL値の場合、strに指定した文字列を返却します。
文法 NVL2(column, str1, str2)
引数 column:項目
str1:columnがNULL値以外の場合の置換文字列
str2:columnがNULL値の場合の置換文字列
戻り値 columnがNULL値以外の場合はstr1、NULL値の場合にstr2に指定した文字列を返却します。

使用例

CLASS NAME
1 Suzuki
1 Yamashita
2 Yamada
2 Tanaka
NULL Aoyama

 

文字列を置換する(別の文字に置き換える)

文字列を別の文字列に置き換える場合、REPLACE関数、TRANSLATE関数を使用します。

文法 REPLACE(str, target, replace)
引数 str:置換対象の文字列
target:置換前の文字列
replace:置換後の文字列
戻り値 置換対象文字列(str)から置換前文字列(target)を検索し、置換後文字列(replace)に置き換えた文字列を返却します。
文法 TRANSLATE(str, targetlist, replacelist)
引数 str:置換対象の文字列
targetlist:置換前の文字リスト
replacelist:置換後の文字リスト
戻り値 置換対象文字列(str)から置換前文字リスト(targetlist)にある文字を検索し、該当した文字列位置にある置換後文字リスト(replacelist)に置き換えた文字列を返却します。

使用例

 

文字列を置換する(大文字、小文字を置き換える)

文字列の大文字、小文字を置き換える場合、UPPER、LOWER、INITCAP関数を使用します。

文法 UPPER(str)
引数 str:文字列
戻り値 指定した文字列を大文字にして返却します。
文法 LOWER(str)
引数 str:文字列
戻り値 指定した文字列を小文字にして返却します。
文法 INITCAP(str)
引数 str:文字列
戻り値 指定した文字列の先頭を大文字、以降を小文字にして返却します。

使用例

CLASS NAME
1 SUZUKI
1 Yamashita
2 yamada
2 tanaka
2 Aoyama

 

文字列を置換する(全角、半角を置き換える)

文字列の全角文字、半角文字を置き換える場合、TO_MULTI_BYTE関数、TO_SINGLE_BYTE関数を使用します。

文法 TO_MULTI_BYTE(str)
引数 str:半角文字列
戻り値 指定した文字列を全角文字に変換した文字列を返却します。
※全角文字、半角カタカナは変換されません。
文法 TO_SINGLE_BYTE(str)
引数 str:全角文字列
戻り値 指定した文字列を半角文字に変換した文字列を返却します。
※半角文字、全角カタカナは変換されません。

使用例

 

広告



文字列を置換する(スペースを取り除く)

文字列のスペースを取り除く場合は、TRIM関数、RTRIM関数、LTRIM関数を使用します。

文法 TRIM(str [,delstr])
引数 str:対象の文字列
delstr:削除したい文字列 ※省略した場合は半角スペースが対象
戻り値 対象文字列(str)の先頭、末尾から削除したい文字列(delstr)を削除した文字列を返却します。
文法 RTRIM(str [,delstr])
引数 str:対象の文字列
delstr:削除したい文字列 ※省略した場合は半角スペースが対象
戻り値 対象文字列(str)の末尾から削除したい文字列(delstr)を削除した文字列を返却します。
文法 LTRIM(str [,delstr])
引数 str:対象の文字列
delstr:削除したい文字列 ※省略した場合は半角スペースが対象
戻り値 対象文字列(str)の先頭から削除したい文字列(delstr)を削除した文字列を返却します。

使用例

文字列を置換する(先頭、後方を埋める)

文字列の先頭、後方を指定文字で埋め、指定の桁数にする場合はLPAD関数、RPAD関数を使用します。

文法 LPAD(str,  len [, addstr])
引数 str:文字列
len:全体の文字列長
addstr:追加する文字列 ※省略した場合は半角スペースが対象
戻り値 文字列(str)の先頭に追加する文字列(addstr)を連結し、全体文字列長(len)に加工した値を返却します。
※文字列(str)が全体文字列長(len)より長い場合、末尾文字列が切り取られます。
文法 RPAD(str,  len [, addstr])
引数 str:文字列
len:全体の文字列長
addstr:追加する文字列 ※省略した場合は半角スペースが対象
戻り値 文字列(str)の末尾に追加する文字列(addstr)を連結し、全体文字列長(len)に加工した値を返却します。
※文字列(str)が全体文字列長(len)より長い場合、末尾文字列が切り取られます。

使用例

No NAME
A101 Suzuki
A102 Yamashita
B101 Yamada
B102 Tanaka
B103 Aoyama

 

文字列の指定箇所を切り取る

文字列を指定の箇所で切り取る場合、SUBSTR関数、SUBSTRB関数を使用します。

文法 SUBSTR(str, position [,len])
引数 str:文字列
position:
正=切り出したい文字の開始位置(1から)
負=末尾から逆方向にカウントした文字位置
len:取り出す文字長 ※省略した場合は末尾までが対象
戻り値 文字列(str)の開始文字位置(position)から文字長(len)までの文字を切り出し返却する。
文法 SUBSTRB(str, position [,len])
引数 str:文字列
position:
正=切り出したいバイトの開始位置(1から)
負=末尾から逆方向にカウントしたバイト位置
len:取り出すバイト長 ※省略した場合は末尾までが対象
戻り値 文字列(str)の開始バイト位置(position)からバイト長(len)までの文字を切り出し返却する。

使用例