# TRIM 関数

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

#### 構文x

    TRIM( [ trimOperands ] trimSource)

    trimOperands  ::= { trimType [ trimCharacter ]  FROM | trimCharacter FROM }
    trimType      ::= { LEADING | TRAILING | BOTH }
    trimCharacter ::= 文字式
    trimSource    ::= 文字式

trimTypeが指定されなかった場合、既定でBOTHとみなされます。trimCharacterが指定されなかった場合、既定で空白文字(' ')とみなされます。trimCharacterの値は以下のいずれかに評価されなければなりません。

- 長さ一文字の文字列あるいは
- NULL

trimCharacterとtrimSourceが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'を返します。(先頭に空白がありあｍす。)
    VALUES TRIM('y' FROM ' derby')

    -- trimCharacterには一文字しか指定できないのでエラーとなります。
    VALUES TRIM('by' FROM ' derby')

Parent topic: 組み込み関数