Oracle SQL 関数 : TRIM : 文字列空白除去
stringRet := TRIM( [ [ LEADING | TRAILING | BOTH ] stringTrimChar FROM ] stringSrc ); LEADINGを指定 :stringSrcの先頭からstringTrimCharの文字を削除されます。 TRAILINGを指定:stringSrcの最後からstringTrimCharの文字を削除されます。 BOTHを指定か指定無:stringSrcの先頭及び最後からstringTrimCharの文字を削除されます。 stringTrimCharを指定しない場合はデフォルトで空白が削除されます。 stringSrcのみ指定された場合は先頭及び最後から空白が削除されます。 stringTrimChar, stringSrcのいづれかがNULLの場合はNULLを返します。 (stringTrimChar:1個のみの文字の指定)
SQL> SELECT TRIM(LEADING '0' FROM '00088899900') LEADING,
2 TRIM(TRAILING '0' FROM '00088899900') TRAILING,
3 TRIM(BOTH '0' FROM '00088899900') BOTH,
4 TRIM('0' FROM '00088899900') BOTH2,
5 TRIM(' 8888999 ') SPACE,
6 TRIM(NULL FROM '00088899900') NULL1,
7 TRIM(NULL) NULL2
8 FROM DUAL;
LEADING TRAILING BOTH BOTH2 SPACE N N
-------- --------- ------ ------ ------- - -
88899900 000888999 888999 888999 8888999
TRIMに似た関数としてLTRIM,RTRIMがあります。
stringRet := xTRIM( stringSrc [ , stringTrim ] ); stringSrcの左側(右側)にあるstringTrimに設定された文字を削除します。 stringSrcの左(右)から検索しstringTrimの文字以外が見つかった時点で処理をやめて文字列を返します。 尚、stringTrimのデフォルト値は空白です。
SQL> SELECT LTRIM('0008889900','08') LT_1,LTRIM('0008889900','80') LT_2,LTRIM(' 0008889900') LT_3,
2 RTRIM('0008889900','09') RT_1,RTRIM('0008889900','90') RT_2,RTRIM('0008889900 ') RT_3
3 FROM DUAL;
LT_1 LT_2 LT_3 RT_1 RT_2 RT_3
---- ---- ---------- ------ ------ ----------
9900 9900 0008889900 000888 000888 0008889900