文字列の左に文字列を加えて桁を揃える、文字列のパディング

LPAD ( string , len [, ins] )
return [ string ]

string | 右に桁揃えしたい対象の文字列式 |
len | 文字列の長さ | |
ins | 挿入したい文字列式 | default 半角スペース |

- 桁揃えしたい対象の文字列に挿入したい文字列を充填した文字列を戻す。

LPAD 関数の内容
文字列 string 中の先頭から文字列の長さ len に満ちるまで 挿入したい文字列式 ins を文字列の先頭から ins の全文字列を左に向かって(※) に付け加えて戻す。文字列 string が既に 長さ len を超過している場合には文字列は len の長さに切り捨てられる。
(※) 全角文字の泣き別れ時には文字列が左方向に伸長することで「先頭の1バイト目」にスペース(' ') が充填される。
LPAD と 引数 NULL
文字列 string に NULL または 「長さ0の文字列」 を使用すると指定した文字列長にならず、結果は常に NULL となる。
LPAD 使用例
8 桁の 16進数の文字列になるように 0-Padding を行なう
SQL> select LPAD(str, 8, '0') from lpad_sample1;
LPAD(STR,8,'0')
--------------------------------
000000A0
000001FE
000000FF
00000007
FFFFFFFF
00000000
全角文字列の泣き別れ処理はスペースが補填される
SQL> select str, len, ins, LPAD(str, len, ins) pad_str from lpad_sample2;
STR LEN PAD PAD_STR
-------------------- ---------- ---------- --------------------
XXX 10 _ _______XXX
あ 10 い いいいいあ
XXX 9 _ ______XXX
あ 9 い □いいいあ
↑ 半角スペースが補填される。
第一引数に '' または NULL を指定すると常に結果は NULL になる
SQL> select LPAD('*', rownum, '*') step,
2 LPAD('', rownum, '*') null_str from lpad_sample1;
STEP NULL_STR
---------- ----------
* <NULL>
** <NULL>
*** <NULL>
**** <NULL>
***** <NULL>
****** <NULL>
⇒ ROWNUM 擬似列
SQL 関数 - LPAD 関連