文字列でうめるRPAD・LPAD(ゼロ埋め)
Oracleでは、指定した文字列でうめたりゼロ埋めするには「RPAD」「LPAD」を使います。
構文
LPAD(文字列,桁数,うめる文字列)
文字列の左側を指定桁数うめます
RPAD(文字列,桁数,うめる文字列)
文字列の右側を指定桁数うめます
例1. LPADで文字列をゼロ埋めするパターン
--文字列'A111'の左をゼロ埋めする SELECT LPAD('A111',6,'0') FROM DUAL; [結果] '00A111'
ここでは6桁になるまで文字列の左側をゼロ埋めしました。その結果、「A111」を「00A111」にすることができました。
例2. RPADで文字列をゼロ埋めするパターン
--文字列'A111'の右をゼロ埋めする SELECT RPAD('A111',6,'0') FROM DUAL; [結果] 'A11100'
ここでは6桁になるまで文字列の右側をゼロ埋めしました。その結果、「A111」を「A11100」にすることができました。
例3. LPADで文字列を空白で埋めるパターン
--文字列'A111'を空白でうめる SELECT LPAD('A111',6) FROM DUAL; [結果] ' A111'
第3パラメータを指定しないと空白でうめることができます。ここでは「A111」を「 A111」(前2桁は空白)にすることができました。
RPAD・LPADで文字列をゼロ埋めしたり、空白で埋めることができました。
以上、Oracleで文字列でうめるRPAD・LPAD(ゼロ埋め)でした。
コメント
>LPAD(文字列,桁数,うめる文字列)
> 文字列の左側を指定桁数うめます
>RPAD(文字列,桁数,うめる文字列)
> 文字列の左側を指定桁数うめます
どちらも左になっているようです。
RPADの記述を左→右へ修正しました。
ご指摘ありがとうございました!
> 文字列の左側を指定桁数うめます
例を見ると分かるのですが、指定桁数の意味が少しあいまいに感じました。
「文字列の左側を指定桁数に満たない桁数分うめます」