文字列関数

[Oracle] 文字列関数 文字列の桁揃えSQL(RPAD・LPAD)

文字列の桁数を揃える

文字列の長さを左揃えで統一する

文字列の長さを左揃えで統一するには、RPADを使用します。

RPAD(文字列, 揃える桁数, 空白を埋める文字)

それではサンプルを見てみましょう。
以下のようなmemberテーブルがあります。

id name
1 荒木太郎
2 WOODS
3 TONY BLANCO


name列の文字列長を10バイトとし、10バイトに満たない場合は文字列の右側を”0″で埋めるSQLです。

上記を実行し、抽出された結果がこちらです。

name
荒木太郎00
WOODS00000
TONY BLANC


name列の文字列を10バイトに統一し抽出されました。
この際、3行目のように10バイトを超過した分の文字は切り捨てられます。

 

文字列の長さを右揃えで統一する

文字列の長さを右揃えで統一するには、LPADを使用します。

LPAD(文字列, 揃える桁数, 空白を埋める文字)

それではサンプルを見てみましょう。
以下のようなmemberテーブルがあります。

id name
1 荒木太郎
2 WOODS
3 TONY BLANCO


name列の文字列長を10バイトとし、10バイトに満たない場合は文字列の左側を”0″で埋めるSQLです。

上記を実行し、抽出された結果がこちらです。

name
00荒木太郎
00000WOODS
TONY BLANC


name列の文字列を10バイトに統一し抽出されました。

ここで注意すべき点は、LPADの場合、指定したバイト数を超過した場合は左から数えて指定バイト数分を残し、溢れた分を切り捨てるという点です。

抽出結果を見てもわかる通り、3行目は右から数えて10桁である”ONY BLANCO”ではなく、左から数えて10桁である”TONY BLANC”となっています。
 
 
以上が、文字列の桁数を揃える関数「RPAD・LPAD」の使い方です。
ぜひ参考にしてみてください。