LTRIM スカラー関数

LTRIM 関数は、トリム式の内容に基づいて、ストリング式の先頭からバイトを除去します。

構文図を読むビジュアルシンタックスダイアグラムをスキップするLTRIM(文字列式 ,トリム式 )

スキーマは SYSIBM です。

LTRIM 関数は、string-expression の先頭から、trim-expression に含まれるすべての文字を除去します。 検索は、trim-expression に含まれる各文字のバイナリー表現 (1 つ以上のバイトで構成される) を string-expression の先頭にあるバイトと比較することによって行われます。 string-expression が FOR BIT DATA として定義される場合、検索は、trim-expression に含まれる各バイトを string-expression の先頭にあるバイトと比較することによって行われます。

文字列式
ソース・ストリングを指定する式。 引数は、LOB ではない組み込みストリング・データ・タイプの値、または数値データ・タイプの値を返す式でなければなりません。 ストリング・データ・タイプでない値は、関数の評価の前に VARCHAR に暗黙的にキャストされます。 string-expression が FOR BIT DATA でない場合、trim-expression を FOR BIT DATA にすることはできません。
トリム式
string-expression の先頭から除去する文字を指定する式。 この式は、LOB ではない組み込みストリング・データ・タイプ、または数値データ・タイプの値を返す必要があります。 ストリング・データ・タイプでない値は、関数の評価の前に VARCHAR に暗黙的にキャストされます。

trim-expression のデフォルトは、string-expression のデータ・タイプによって異なります。

  • string-expression が DBCS グラフィック・ストリングであれば DBCS のブランク。 ASCII の場合、DBCS のブランクを表す 16 進値は、CCSID によって決まります。 例えば、日本語 (CCSID 301) の場合は X'8140' が DBCS のブランクを表し、中国語 (簡体字) の場合は X'A1A1' が DBCS のブランクを表します。 EBCDIC の場合は X'4040' が DBCS のブランクを表します。
  • 文字列表現がUnicodeグラフィック文字列の場合、 UTF-16 または UCS-2 のブランク (X'0020' )。
  • 文字列式がバイナリ文字列の場合、値は X'00' です。
  • それ以外の場合は、1 バイトのブランク。 EBCDIC の場合は、X'40' がブランクを示します。 EBCDIC でない場合は、X'20' がブランクを示します。

string-expressiontrim-expression は互換性のあるデータ・タイプを持つ必要があります。 string-expressiontrim-expression の CCSID セットが異なる場合、trim-expression の CCSID は string-expression の CCSID に変換されます。

関数の結果は、string-expression のデータ・タイプによって決まります。

  • string-expression が文字ストリングであれば VARCHAR。 string-expression が FOR BIT DATA として定義されている場合、結果は FOR BIT DATA です。
  • string-expression がグラフィックであれば VARGRAPHIC。
  • string-expression がバイナリー・ストリングであれば VARBINARY。

結果の長さ属性は、string-expression の長さ属性と同じになります。

結果が文字ストリングまたはバイナリー・ストリングである場合の実際の長さは、除去されるバイト数を string-expression から引いた長さになります。 グラフィック・ストリングである場合、結果の実際の長さは、除去される 2 バイト文字の数を string-expression から引いた長さ (2 バイト文字単位) になります。 すべての文字バイトが除去された場合、結果は空ストリング (長さゼロ) です。

結果はnullになる可能性があります。引数がnullの場合、結果もnull値となります。

結果の CCSID は string-expression の CCSID と同じです。

変更の開始EBCDIC 混合ストリング入力の有効な内容。変更の終わり
変更の開始文字列表現がEBCDIC混合文字列である場合、その文字列は有効なEBCDIC混合データを含んでいなければなりません。変更の終わり

例: LTRIM関数を使用して、第2引数の個々の数値を第1引数の先頭から削除します
SELECT LTRIM ('123DEFG123', '321'),
			 LTRIM ('12DEFG123', '321'),
			 LTRIM ('123123222XYZ22', '123'),
			 LTRIM ('12321', '213'),
			 LTRIM ('XYX123 ', '321')
   FROM SYSIBM.SYSDUMMY1

結果は、'DEFG123'、'DEFG123'、'XYZ22'、'' (空ストリング。すべての文字が除去されています)、および 'XYX123' (除去された文字はありません) です。

LTRIM 関数は、「1」、「2」、または「3」ではない文字の後に続く、ストリング右側の「1」、「2」、および「3」のインスタンスを除去しません。

例: LTRIM関数を使用して、第2引数の先頭にある個々の特殊文字を第1引数の先頭から削除します
SELECT LTRIM ('[[ -78]]', '- []')
   FROM SYSIBM.SYSDUMMY1

結果は '78]]' です。

例: LTRIM関数を使用して、第2引数のドル記号とピリオドを第1引数の先頭から削除します
SELECT LTRIM ('...$V..$AR', '$.')
   FROM SYSIBM.SYSDUMMY1

結果は 'V..$AR' です。

: LTRIM 関数を使用して、マルチバイト X'D090' 文字全体をトリムします。
これらのストリングは UTF-8 でエンコードされているとします。
SELECT LTRIM (X'D090D091D092', X'D090')  
   FROM SYSIBM.SYSDUMMY1

結果は X'D091D092' です。

この関数は個々のバイト x'D0' および x'90' を除去しないことに注意してください。