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;

対象の文字列が指定した文字数よりも長い場合
指定した文字数よりも長い場合は、カットされます。
/* MySQL 指定した文字数よりも長い場合のサンプル */
SELECT STR,RPAD(STR,2,'#') FROM testdb.WORK;

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

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