SQL道場 文字列関数 RPAD関数

SQLで右から文字列を指定した文字で右埋めするRPAD関数について記載しています。

対応データベースMySQL Oracle PostgreSQL

RPAD関数の文法

SELECT RPAD(対象の文字列,充填後の文字列長,充填する文字列) FROM テーブル
引数対象の文字列文字列型
充填後の文字列長正数型
充填する文字列文字列型
返値文字列型 編集後の文字列が戻ります。

RPAD関数は指定された文字列を充填後の文字列長になるまで右から充填文字列で埋めます。文字列長はバイト単位で指定します。PostgreSQLでは充填する文字列を省略することができ、この場合はスペースが充填されます。左から文字列を充填する場合はLPAD関数を使用します。

充填する文字列が2文字以上の場合は、埋める必要がある文字数になるまで、埋める文字が繰り返されます。用途しては、固定長の文字列を生成する際のパディングとして使用することができます。また、あまり好ましい方法ではないですが、帳票などで空白や半角空白などでインデックスする場合などにも利用できます。

実行例

MySQLの実行例

/* MySQL 右から指定した文字列を充填するサンプル */
SELECT STR,RPAD(STR,15,'#') FROM testdb.WORK;
RPAD関数サンプル実行結果

対象の文字列が指定した文字数よりも長い場合

指定した文字数よりも長い場合は、カットされます。

/* MySQL 指定した文字数よりも長い場合のサンプル */
SELECT STR,RPAD(STR,2,'#') FROM testdb.WORK;
RPAD関数サンプル実行結果

埋める文字が2文字以上の場合

/* MySQL 埋める文字が2文字以上の場合のサンプル */
SELECT STR,RPAD(STR,10,'#1') FROM testdb.WORK;
RPAD関数サンプル実行結果

全角の文字列で埋める

/* MySQL 全角の文字列で埋める場合のサンプル */
SELECT STR,RPAD(STR,10,'春') FROM testdb.WORK;
RPAD関数サンプル実行結果