LPAD スカラー関数

LPAD 関数は、左側に pad またはブランクが埋め込まれた string-expression で構成されるストリングを返します。 LPAD 関数は、string-expression 内の先行ブランクまたは末尾ブランクを有効として扱います。

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

埋め込みが発生するのは、string-expression の実際の長さが integer より小さく、pad が空ストリングでない場合のみです。

スキーマは SYSIBM です。

文字列式
ソース・ストリングを指定する式。 この式は、LOB 以外の、組み込みの文字ストリング・データ・タイプの値を戻す必要があります。
整数
結果の長さを指定する整数定数。 値は 0 または n 以下の正の整数でなければなりません。ここで、 string-expression が文字またはバイナリ ストリングの場合、 n は 32704 であり、 string-expression がグラフィック ストリングの場合、 n は 16352 です。
パッド
埋め込むストリングを指定する式。 この式は、LOB 以外の、組み込みの文字ストリング・データ・タイプの値を戻す必要があります。 pad を指定しない場合、pad 文字は以下のように決定されます。
  • string-expression が文字ストリングであれば SBCS のブランク文字。
  • string-expression がグラフィック・ストリングであれば DBCS のブランク文字。
  • 16進数表記のゼロ (X'00') は、 文字列式がバイナリ文字列の場合に使用します。

この関数の結果は、string-expression の同じ CCSID を持つ可変長ストリングです。 string-expressionpad は互換性のあるデータ・タイプを持つ必要があります。 ストリング式の CCSID セットが異なる場合、pad は、その string-expression の CCSID セットに変換されます。 string-expression または pad のいずれかが FOR BIT DATA の場合、文字変換は行われません。

結果の長さ属性は、integer によって異なります。 integer が 0 より大きい場合、結果の長さ属性は integer です。 integer が 0 の場合、結果の長さ属性は 1 です。

結果の実際の長さは integer から決定されます。 integer が 0 の場合、実際の長さは 0 であり、結果は空の結果ストリングになります。 integerstring-expression の実際の長さよりも小さい場合、実際の長さは integer で、結果は切り捨てられます。

結果は NULL 値になることがあります。いずれかの引数が NULL 値である場合、結果は NULL 値になります。

例 1: NAME が VARCHAR(15) の列で、値「Chris」、「Meg」、および「Jeff」を含んでいるものとします。 次の照会は、値の左側にピリオドを埋め込みます。
  SELECT LPAD(NAME,15,'.' ) AS NAME 
    FROM T1;
結果は以下の出力のようになります。
  NAME
  ---------------

  ..........Chris
  ............Meg
  ...........Jeff
例 2: 例 1 と似ていますが、以下の照会では、各値を長さ 5 までのみ埋め込みます。
  SELECT LPAD(NAME,5,'.' ) AS NAME 
    FROM T1;
結果は以下の出力のようになります。
  NAME
  ---------------

  Chris
  ..Meg
  .Jeff
例 3: NAME は、値「Chris」、「Meg」、および「Jeff」を含む CHAR(15) 列であると想定します。 ' NAME は固定長文字フィールドであり、既にブランクが埋め込まれているため、LPAD 関数は埋め込みを行わないことに注意してください。 ただし、結果の長さは 5 なので、列の切り捨てが行われます。
  SELECT LPAD(NAME,5,'.' ) AS NAME 
    FROM T1;
結果は以下の出力のようになります。
  NAME
  ---------------

  Chris
  Meg
  Jeff

例 4: NAME が VARCHAR(15) の列で、値「Chris」、「Meg」、および「Jeff」を含んでいるものとします。 埋め込み指定の部分インスタンスが返される場合があります。

  SELECT LPAD(NAME,15,'123') AS NAME
    FROM T1

結果は以下の出力のようになります。

NAME
---------------
1231231231Chris
123123123123Meg
12312312312Jeff