オーロラさんの勉強帳

SESのロースキル客先常駐勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。

【SQL】TRIM関数とオプション「LEADING、TRAILING、BOTH」の使い方 (ORACLE DATABASE 12C SQL基礎)

ORACLE DATABASE 12c SQL基礎(1Z0-061)の試験範囲でもある、
TRIM関数BOTH、LEADING、TRAILINGのオプションを指定した場合の使用方法を紹介します。


目次

TRIM関数の使い方

TRIM関数は引数で指定した文字の前後にある半角スペースを削除する関数です。
また、オプション・引数を指定することで1文字の切り捨て文字を文字列の「前後」または「先頭1文字」または「末尾1文字」から削除することができます。

TRIM関数の書式

  1. TRIM(文字列)
  2. TRIM(切り捨て文字 from 文字列)
  3. TRIM(LEADING | TRAILING | BOTH] 切り捨て文字 FROM 文字列)

※指定できる切り捨て文字は1文字だけです。2文字以上を指定するとエラーとなります。
※LEADINGは先、TRAILINGは末尾、BOTHは両方という意味を意識すると覚えやすいです。

1.TRIM(文字列)の使用方法

「TRIM(文字列)」は文字列の前後の半角スペースを削除します。
ダミーテーブルのDUALを使って以下のSQLで動作を確認してみましょう。

--文字列の前後の半角スペースを削除する例
SELECT TRIM('   ORACLE 1Z0-061学習   ') FROM DUAL;

--文字列の前後の全角スペースは削除されない例
SELECT TRIM('   ORACLE 1Z0-061学習   ') FROM DUAL;


文字列の前後の半角スペースは削除されますが、全角スペースは削除されません。


2.TRIM(切り捨て文字 from 文字列)の使用方法

「TRIM(切り捨て文字 from 文字列)」は指定した切り捨て文字(1文字)が文字列の前後にある場合に、その1文字を削除します。
※指定できる切り捨て文字は1文字だけです。

--文字列の前後の「a」を削除する例
SELECT TRIM('a' FROM 'a1101a') FROM DUAL;
SELECT TRIM('a' FROM 'a5555') FROM DUAL;
SELECT TRIM('a' FROM '5555a') FROM DUAL;

1つ目のSQLでは文字列の前後に「a」があるので、前後の「a」を削除。
2つ目のSQLでは文字列の先頭にある「a」を削除。
3つ目のSQLでは文字列の末尾にある「a」を削除。


切り捨て文字に2文字以上を指定した場合は、以下のようなエラーとなります。

SQL   : ORA-30001: 切捨てセットの文字は1つにする必要があります

※エラーコード:ORA-30001の例

2.TRIM(LEADING | TRAILING | BOTH] 切り捨て文字 FROM 文字列)の使用方法

オプションのLEADING | TRAILING | BOTHを指定することで、文字列の先頭、もしくは末尾、もしくは前後両方から切り捨て文字を削除することができます。

  • LEADINGを指定した場合は、文字列の先頭から切り捨て文字を削除します。
  • TRAILINGを指定した場合は、文字列の末尾から切り捨て文字を削除します。
  • BOTHを指定した場合は、文字列の前後から切り捨て文字を削除します。


LEADINGの使用例

--文字列の先頭の「a」を削除する例
SELECT TRIM(LEADING 'a' FROM 'a1101a') FROM DUAL;


TRAILINGの使用例

--文字列の末尾の「a」を削除する例
SELECT TRIM(TRAILING 'a' FROM 'a1101a') FROM DUAL;


BOTHの使用例

--文字列の前後の「a」を削除する例
SELECT TRIM(BOTH 'a' FROM 'a1101a') FROM DUAL;