BTRIM スカラー関数

BTRIM 関数は、ソース・ストリングの先頭と末尾から、トリム・ストリングで指定した文字を除去します。

構文図を読む構文図をスキップするBTRIM(source-string ,trim-string )

スキーマは SYSIBM です。

この関数は、トリム・ストリング内の各文字 (1 バイト以上) の 2 進数表現と、ソース・ストリングの先頭と末尾にある各文字 (1 バイト以上) の 2 進数表現を比較します。データベース照合は、検索に影響しません。string-expression を FOR BIT DATA として定義した場合は、検索でトリム・ストリングの各バイトと string-expression の先頭と末尾のバイトが比較されます。

source-string
文字を除去する対象のストリングを指定する式。この式は、組み込みの文字ストリング、グラフィック・ストリング、数値、ブール値、日時値のいずれかを戻す必要があります。このソース・ストリングは、タイプによって以下のように処理されます。
  • 数値、ブール値、または日時値の場合は、関数の評価の前に VARCHAR に暗黙的にキャストされます。
  • CLOB 値の場合は、値の長さが VARCHAR の最大サイズに制限されます (SQLSTATE 22001)。
  • DBCLOB 値の場合は、値の実際の長さが VARGRAPHIC の最大サイズに制限されます (SQLSTATE 22001)。
trim-string
ソース・ストリングの先頭と末尾から除去する文字を指定する式。この式は、組み込みの文字ストリング、グラフィック・ストリング、数値、日時値のいずれかを戻す必要があります。このトリム・ストリングは、タイプによって以下のように処理されます。
  • 文字ストリングやグラフィック・ストリングでない場合は、関数の評価の前に VARCHAR に暗黙的にキャストされます。
  • CLOB の場合は、値の実際の長さが VARCHAR の最大サイズに制限されます (SQLSTATE 22001)。
  • DBCLOB の場合は、値の実際の長さが VARGRAPHIC の最大サイズに制限されます (SQLSTATE 22001)。
ソース・ストリングのタイプによって、デフォルトのトリム・ストリングが決まります。
ソース・ストリングのタイプ デフォルトのトリム・ストリング
DBCS または EUC のデータベースのグラフィック・ストリング 2 バイトのブランク
Unicode データベースのグラフィック・ストリング UCS-2 ブランク
FOR BIT DATA のストリング X'20'
その他の場合 1 バイトのブランク
制約事項:
  • ソース・ストリングが FOR BIT DATA として定義されていない場合は、トリム・ストリングを FOR BIT DATA として定義できません (SQLSTATE 42815)。
  • 一方のパラメーター (ソース・ストリングまたはトリム・ストリング) が FOR BIT DATA の文字である場合は、もう一方のパラメーターをグラフィックにすることはできません (SQLSTATE 42846)。
  • 文字ストリング引数と GRAPHIC ストリング引数の組み合わせは、Unicode データベースでのみ使用できます (SQLSTATE 42815)。

結果

ソース・ストリングのデータ・タイプによって、結果のデータ・タイプが決まります。
ソース・ストリングのデータ・タイプ 結果のデータ・タイプ
VARCHAR または CHAR VARCHAR
CLOB CLOB
VARGRAPHIC または GRAPHIC VARGRAPHIC
DBCLOB DBCLOB

結果のデータ・タイプの長さ属性は、ソース・ストリングのデータ・タイプの長さ属性と同じです。結果の長さは、ソース・ストリングの長さから除去するストリング単位数を差し引いた長さになります。すべての文字が除去されると、結果は長さがゼロの空ストリングになります。

引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数のいずれかが NULL の場合、その結果は NULL 値です。

ホスト変数 BALANCE1 は CHAR(9) タイプで、'000345.50' という値が入っています。以下のステートメントでは、'345.5' という値が戻されます。
 SELECT BTRIM(:BALANCE1, '0'),
   FROM SYSIBM.SYSDUMMY1
ホスト変数 BALANCE2 は CHAR(9) タイプで、'345.50' という値が入っています。以下のステートメントでは、'345.50' という値が戻されます。
 SELECT BTRIM(:BALANCE2),
   FROM SYSIBM.SYSDUMMY1