メインコンテンツまでスキップ

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を返す

  1. 基本的な左パディング
SELECT LPAD('hi', 5, 'xy'), LPAD('hello', 8, '*');
+---------------------+-----------------------+
| LPAD('hi', 5, 'xy') | LPAD('hello', 8, '*') |
+---------------------+-----------------------+
| xyxhi | ***hello |
+---------------------+-----------------------+
  1. 文字列の切り詰め
SELECT LPAD('hi', 1, 'xy'), LPAD('hello world', 5, 'x');
+---------------------+------------------------------+
| LPAD('hi', 1, 'xy') | LPAD('hello world', 5, 'x') |
+---------------------+------------------------------+
| h | hello |
+---------------------+------------------------------+
  1. 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 |
+---------------------+------------------------+----------------------+