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