TRIM 関数

TRIMは文字式を引数にとる関数で、引数から前あるいは/および後の詰められた文字を取り除いた値を返します。省略可能な引数に文字を指定できて、この文字は取り除かれる、前あるいは後、あるいはその両方にある詰められた文字です。

構文x

TRIM( [ trimOperands ] trimSource)
trimOperands  ::= { trimType [ trimCharacter ]  FROM | trimCharacter FROM }
trimType      ::= { LEADING | TRAILING | BOTH }
trimCharacter ::= 文字式
trimSource    ::= 文字式
trimTypeが指定されなかった場合、既定でBOTHとみなされます。trimCharacterが指定されなかった場合、既定で空白文字(' ')とみなされます。trimCharacterの値は以下のいずれかに評価されなければなりません。
  • 長さ一文字の文字列あるいは
  • NULL
trimCharactertrimSourceがNULLと評価される場合、TRIM関数の結果はNULlです。さもなければTRIM関数の結果は以下のいずれかになります。
  • trimTypeがLEADINGなら、結果はtrimSourceの値の前からtrimCharを取り除いた値です。
  • trimTypeがTRAILINGなら、結果はtrimSourceの値の後ろからtrimCharを取り除いた値です。
  • trimTypeがBOTHなら、結果はtrimSourceの値の前*と*後からtrimCharを取り除いた値です。

trimSourceのデータ型がCHARあるいはVARCHARなら、TRIM関数の返り値の型はVARCHARです。それ以外の場合、TRIM関数の返り値の型はCLOBです。

-- 'derby'を返します。(空白はありません。)
VALUES TRIM('  derby ')
-- 'derby'を返します。 (空白はありません。)
VALUES TRIM(BOTH ' ' FROM '  derby ')
-- 'derby 'を返します。 (末尾に空白があります。)
VALUES TRIM(LEADING ' ' FROM '  derby ')
-- '  derby'を返します。 (先頭に二つ空白があります。)
VALUES TRIM(TRAILING ' ' FROM '  derby ')
-- NULLを返します。
VALUES TRIM(cast (null as char(1)) FROM '  derby ')
-- NULLを返します。
VALUES TRIM(' ' FROM cast(null as varchar(30)))
-- ' derb'を返します。(先頭に空白がありあmす。)
VALUES TRIM('y' FROM ' derby')
-- trimCharacterには一文字しか指定できないのでエラーとなります。
VALUES TRIM('by' FROM ' derby')