LTRIM スカラー関数

LTRIM 関数は、指定した文字のいずれかをストリングの先頭から除去します。

文字検索では、トリム式の各文字 (1 バイト以上) のバイナリー表現と、ストリング式の先頭にある各文字 (1 バイト以上) のバイナリー表現が比較されます。 データベース照合は、検索に影響しません。 ストリング式が FOR BIT DATA として定義されているか、バイナリー・ストリングである場合、検索はトリム式の各バイトをストリング式の先頭のバイトと比較します。

Read syntax diagramSkip visual syntax diagramLTRIM( string-expression ,trim-expression )

スキーマは SYSIBM です。 (この関数の SYSFUN バージョンも使用可能です。 そのバージョンは、単一のパラメーターを使用し、先行ブランクのみを除去し、CLOB 引数を受け入れます。)

ストリング式
トリムするストリングを指定する式。
  • 引数を 1 つしか指定しない場合、式は、組み込みの文字ストリング、グラフィック・ストリング、バイナリー・ストリング、CLOB または DBCLOB 値、数値、 ブール値、 または日時値を戻す必要があります。 値に応じて以下のようになります。
    • CLOB、数値、 ブール値、 または日時値。関数が評価される前に VARCHAR に暗黙的にキャストされます。
    • DBCLOB 値の場合は、関数の評価の前に VARGRAPHIC に暗黙的にキャストされます。
    値のデータ・タイプを BLOB にすることはできません (SQLSTATE 42815)。
  • 両方の引数を指定する場合、式は、組み込みの文字ストリング、数値、 ブール値、 または日時値の値を返す必要があります。 値のデータ・タイプが数値または日時の場合、関数の評価の前にその値が VARCHAR に暗黙的にキャストされます。 CLOB 値の実際の長さは、VARCHAR データ・タイプの最大サイズに制限されます (SQLSTATE 22001)。 BLOB 値の実際の長さは、VARBINARY の最大サイズに制限されます (SQLSTATE 22001)。 DBCLOB 値の実際の長さは、VARGRAPHIC データ・タイプの最大サイズに制限されます (SQLSTATE 22001)。
トリム式
ストリング式の先頭から除去される文字を指定する式。 この式は、組み込みの文字ストリング、数値、 ブール値、 または日時値を返す必要があります。
  • トリム式のデータ・タイプがストリングでない場合は、関数の評価の前にその値が VARCHAR に暗黙的にキャストされます。
  • トリム式のデータ・タイプが CLOB である場合、値の実際の長さは、VARCHAR の最大サイズに制限されます (SQLSTATE 22001)。
  • トリム式のデータ・タイプが DBCLOB である場合、値の実際の長さは、VARGRAPHIC の最大サイズに制限されます (SQLSTATE 22001)。
  • トリム式のデータ・タイプが BLOB である場合、値の実際の長さは、VARBINARY の最大サイズに制限されます (SQLSTATE 22001)。
  • ストリング式が FOR BIT DATA として定義されていない場合、トリム式は FOR BIT DATA として定義できません (SQLSTATE 42815)。
ストリング式のデータ・タイプに応じて、以下のようにデフォルトのトリム式が決まります。
  • ストリング式が DBCS または EUC データベースの GRAPHIC ストリングである場合、2 バイト・ブランク
  • ストリング式が Unicode データベースの GRAPHIC ストリングである場合、UCS-2 ブランク
  • ストリング式が FOR BIT DATA ストリングである場合、値 X'20'
  • ストリング式がバイナリー・ストリングである場合、値 X'00'
  • その他すべての場合、1 バイト・ブランク

ストリング式とトリム式の値は、互換性のあるデータ・タイプでなければなりません。 一方の関数引数が文字 FOR BIT DATA である場合、もう一方の引数を GRAPHIC にすることはできません (SQLSTATE 42846)。 文字ストリング引数と GRAPHIC ストリング引数の組み合わせは、Unicode データベースでのみ使用できます (SQLSTATE 42815)。

結果

結果のデータ・タイプは、ストリング式のデータ・タイプによって異なります。
  • データ・タイプが VARCHAR または CHAR の場合、VARCHAR
  • データ・タイプが CLOB の場合、CLOB
  • データ・タイプが VARBINARY または BINARY の場合、VARBINARY
  • データ・タイプが BLOB の場合、BLOB
  • データ・タイプが VARGRAPHIC または GRAPHIC の場合、VARGRAPHIC
  • データ・タイプが DBCLOB の場合、DBCLOB

結果のデータ・タイプの長さ属性は、ストリング式のデータ・タイプの長さ属性と同じです。

結果の実際の長さは、除去されるストリング単位数を string-expression から引いた値になります。 すべての文字が除去されると、結果は長さがゼロの空ストリングになります。

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

  • 例 1: ホスト変数 HELLO が CHAR(6) として定義されており、値が「 Hello」であるときに、LTRIM 関数を使用します。
       VALUES LTRIM(:HELLO)
    結果は 'Hello' になります。 trim-expression が指定されていないときは、ブランクのみが除去されます。
  • 例 2: LTRIM 関数を使用して、trim-expression に指定した文字を string-expression の先頭から除去します。
       VALUES LTRIM('...$V..$AR', '$.')
    結果は 'V..$AR' です。 関数は、trim-expression に指定されていない文字を検出すると停止します。
  • 例 3: LTRIM 関数を使用して、trim-expression に指定した文字を string-expression の先頭から除去します。
       VALUES LTRIM('[[ -78]]', '- []')
    結果は '78]]' です。 文字とブランクを除去するときは、trim-expression にブランクを含める必要があります。