メインコンテンツまでスキップ
バージョン: 26.x

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 |
+---------------------+------------------------+----------------------+