TRIM

TRIM 関数はブランクまたは指定されたその他の文字を、 ストリング式の末尾、先頭、またはその両側から除去します。

構文図を読む構文図をスキップする
>>-TRIM--(--+-----------------------------------------+--expression--)-><
            | .-BOTH-----.                            |                  
            '-+----------+--+-----------------+--FROM-'                  
              +-B--------+  '-strip-character-'                          
              +-LEADING--+                                               
              +-L--------+                                               
              +-TRAILING-+                                               
              '-T--------'                                               

最初の引数を指定する場合は、ストリングの後部と前部のどちらから文字を除去するのかを指示します。 最初の引数を指定しない場合は、ストリングの前部と後部の両方から文字が除去されます。

strip-character
2 番目の引数が指定された場合、除去する 2 進数、SBCS または DBCS 文字を示す 1 文字定数となります。 が 2 進ストリングの場合、 2 番目の引数は 2 進ストリング定数でなければなりません。 が DBCS グラフィック・ストリングまたは DBCS 専用ストリングである場合は、 2 番目の引数は、1 つの DBCS 文字からなるグラフィック定数にする必要があります。 2 番目の引数を指定しない場合は、次のようになります。
  • が 2 進ストリングの場合、 デフォルトの除去文字は 16 進ゼロ (X'00') になる。
  • が DBCS グラフィック・ストリングである場合は、 デフォルトの除去文字は DBCS ブランクになる。
  • が Unicode グラフィック・ストリングである場合は、 デフォルトの除去文字は UTF-16 または UCS-2 ブランクになる。
  • が UTF-8 文字ストリングである場合は、 デフォルトの除去文字は UTF-8 ブランクになる。
  • それ以外の場合は、デフォルトの除去文字は、SBCS ブランクになる。
expression
任意の組み込み数値データ・タイプ、またはストリング・データ・タイプの値を戻す式。数値引数は、関数を評価する前に文字ストリングにキャストされます。 数値から文字ストリングへの変換の詳細については、VARCHARを参照してください。

結果のデータ・タイプは、 のデータ・タイプによって異なります。

のデータ・タイプ 結果のデータ・タイプ
CHAR または VARCHAR VARCHAR
CLOB CLOB
GRAPHIC または VARGRAPHIC VARGRAPHIC
DBCLOB DBCLOB
BINARY または VARBINARY VARBINARY
BLOB BLOB

結果の長さ属性は、 の長さ属性と同じになります。 結果の実際の長さは、式の長さから、除去したバイトの数を引いたものになります。 すべての文字が除去された場合は、結果は空のストリングになります。

最初の引数がヌルである可能性がある場合は、結果もヌルになる可能性があります。最初の引数がヌルの場合は、結果は NULL 値になります。

結果の CCSID は、指定したストリングの CCSID と同じになります。

SRTSEQ 属性は、TRIM 関数には適用されません。

  • ホスト変数 HELLO (タイプ CHAR(9)) には、値として「Hello   」が入っていると想定します。
      SELECT TRIM(:HELLO), TRIM( TRAILING FROM :HELLO)
        FROM SYSIBM.SYSDUMMY1
    結果は、それぞれ、「Hello」および「 Hello」になります。
  • ホスト変数 BALANCE (CHAR(9)) には、値として「000345.50」が入っていると想定します。
      SELECT TRIM( L '0' FROM :BALANCE )
        FROM SYSIBM.SYSDUMMY1
    結果は「345.50」になります。
  • 除去するストリングの中に、混合データが入っていると想定します。

    SELECT TRIM( BOTH TRIM の引数 FROM 混合データのストリング )

        FROM SYSIBM.SYSDUMMY1

    結果は次のようになります。 TRIM の結果