文字列の左右の空白文字を削除する(前後の空白文字を削除する)  

TRIM ( string ) 
TRIM ( trim_char FROM string ) 
TRIM ( [ LEADING | TRAILING | BOTH ] trim_char FROM string )  
 
 return [ varchar2 ]

| trim_char | 削除したい文字(1文字) | 
| string | サプレスしたい対象の文字列 | 
| LEADING 、TRAILING 、BOTH | サプレス操作オプション | 

- サプレスしたい対象の文字列から文字 trim_char を削除した文字列
サプレスという用語の誤用

 
サプレス操作オプション
| オプション | 処理内容 | 
| LEADING | 文字列 string から先行する trim_char 文字をサプレス | 
| TRAILING | 文字列  string から後続の trim_char 文字をサプレス | 
| BOTH | 先行、および、後続する trim_char 文字をサプレス | 
TRIM 関数の内容
文字列 string 中の左右(前後)の双方から文字を探索し削除したい文字 trim_char に該当する場合に、その文字を削除(サプレス)していく。
TRIM( string ) の構文でサプレスされる文字は半角のスペース(' ') に固定される。 
文字列がすべてサプレスされたしまったときは NULL 値 になる。
TRIM ( string ) 形式の使用例
見やすくするために半角スペースを('_')、全角スペースを('△') にしている。
SQL> select str, TRIM(str) from trim_sample;
 
STR                        TRIM(STR)
-------------------------- --------------------------------
___あいう___               あいう
__文中にも空____白__       文中にも空____白
△全角のスペース△         △全角のスペース△
TRIM ( BOTH  trim_char FROM string ) 形式の使用例
SQL> set null '<NULL>'
SQL> select c, str, TRIM(BOTH c FROM str) from trim_sample;
 
C        STR                        TRIM(BOTHCFROMSTR)
-------- -------------------------- -----------------------
_        ___あいう___               あいう
_        __文中にも空____白__       文中にも空____白
_        △全角のスペース△         △全角のスペース△
△       △全角のスペース△         全角のスペース
X        XXXをサプレスXXX          Xをサプレス
<NULL>   trim_char が'NULL'         <NULL>
TRIM(string) とスペースをサプレスする 標準SQL の TRIM(' ' FROM string) と TRIM(BOTH ' ' FROM string) は同じ処理内容である。
同様に LTRIM 関数  および RTRIM 関数 もそれぞれ TRIM(LEADING ' ' FROM string) と TRIM(TRAILING ' ' FROM string) と同じようにみえる・・・が、
しかし、LTRIM、RTRIM 関数ともにサプレスする文字が1文字ではなく文字列(複数文字)をオプションで指定できる点が異なる。
TRIM 関数の応用例  
組み込まれている SQL関数 TRIM で全角スペースと半角スペースの混在した状態をサプレスすることができない。
TRIM_MULTI ファンクション(半角全角、複数文字対応の TRIM)  
  
TRIM 関数は半角だけ、全角だけと個々単独で TRIM は可能であるが半角と全角が交互にあった場合には 2回の TRIM でも削除できない場合がある。
以下の関数で複数の文字列を TRIM に指定することが可能(デフォルト:半角と全角のスペースの TRIM)
CREATE OR REPLACE FUNCTION RIVUS.TRIM_MULTI(
	P_STR VARCHAR2,
	P_TRIM_CHARS IN VARCHAR2 := '  '
)
RETURN VARCHAR2
IS
BEGIN
	RETURN LTRIM(RTRIM(P_STR, P_TRIM_CHARS), P_TRIM_CHARS);
END;
/
-- 全角スペースと半角スペースがデフォルト削除対象
----  わかりづらいので 全角スペースを □ 半角スペースを _ で表現
SELECT TRIM_MULTI('□_□aabb_□_') FROM DUAL ;  
⇒ 'aabb'
-- A の大文字小文字、全角半角を削除する場合
SELECT TRIM_MULTI('AAaBcdaaAAAA', 'aaAA') FROM DUAL ;
⇒ 'Bcd'
 
SQL 関数 - TRIM 関連