LPAD
説明
LPAD関数(Left Padding)は、指定された長さに達するまで、文字列の左側を指定された文字でパディングします。対象の長さが元の文字列の長さより短い場合、文字列は切り詰められます。
構文
LPAD(<str>, <len>, <pad>)
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | パディングする元の文字列。型: VARCHAR |
<len> | 対象文字列の文字長(バイト長ではない)。型: INT |
<pad> | パディングに使用する文字列。型: VARCHAR |
戻り値
VARCHAR型を返し、パディングまたは切り詰められた文字列を表します。
パディングルール:
- len > 元の文字列長の場合: 全体の長さがlenに達するまで、pad文字列を左側に繰り返しパディング
- len = 元の文字列長の場合: 元の文字列を返す
- len < 元の文字列長の場合: 文字列を切り詰め、最初のlen文字のみを返す
- 文字長で計算され、UTF-8のマルチバイト文字をサポート
特殊ケース:
- いずれかのパラメータがNULLの場合、NULLを返す
- padが空文字列でlen > str長の場合、空文字列を返す
- lenが0の場合、空文字列を返す
- lenが負の値の場合、NULLを返す
例
- 基本的な左パディング
SELECT LPAD('hi', 5, 'xy'), LPAD('hello', 8, '*');
+---------------------+-----------------------+
| LPAD('hi', 5, 'xy') | LPAD('hello', 8, '*') |
+---------------------+-----------------------+
| xyxhi | ***hello |
+---------------------+-----------------------+
- 文字列の切り詰め
SELECT LPAD('hi', 1, 'xy'), LPAD('hello world', 5, 'x');
+---------------------+------------------------------+
| LPAD('hi', 1, 'xy') | LPAD('hello world', 5, 'x') |
+---------------------+------------------------------+
| h | hello |
+---------------------+------------------------------+
- NULL値の処理
SELECT LPAD(NULL, 5, 'x'), LPAD('hi', NULL, 'x'), LPAD('hi', 5, NULL);
+---------------------+------------------------+----------------------+
| LPAD(NULL, 5, 'x') | LPAD('hi', NULL, 'x') | LPAD('hi', 5, NULL) |
+---------------------+------------------------+----------------------+
| NULL | NULL | NULL |
+---------------------+------------------------+----------------------+