Oracle SQL 関数 : LPAD, RPAD : 文字列の前後処理
strRet := LPAD( strSrc , n [, strPad ] );
strRet := RPAD( strSrc , n [, strPad ] );
LPAD及びRPADは文字列データ strSrc を左側(右側に)連続してstrPadを埋めてn桁分の文字列を返します。
strPad はデフォルトで空白文字。
2 '<' || LPAD( 'ABC' ,10) || '>' AS LPAD1 |
3 , '<' || LPAD( 'ABC' ,10, '*' ) || '>' AS LPAD2 |
4 , '<' || LPAD( 'ABC' ,10, '*+' ) || '>' AS LPAD3 |
5 , '<' || LPAD( 'ABC' ,10, '1234567890' ) || '>' AS LPAD4 |
6 , '<' || RPAD( 'ABC' ,10) || '>' AS RPAD1 |
7 , '<' || RPAD( 'ABC' ,10, '*' ) || '>' AS RPAD2 |
8 , '<' || RPAD( 'ABC' ,10, '*+' ) || '>' AS RPAD3 |
9 , '<' || RPAD( 'ABC' ,10, '1234567890' ) || '>' AS RPAD4 |
LPAD1 LPAD2 LPAD3 LPAD4 RPAD1 RPAD2 RPAD3 RPAD4 |
< ABC> <*******ABC> <*+*+*+*ABC> <1234567ABC> <ABC > <ABC*******> <ABC*+*+*+*> <ABC1234567> |
ところでこの LPAD、RPAD 関数を使って、指定文字を指定桁数分の文字列(連続文字列)として生成できます。
以下にその例を示します。[strSrc]と[strPad]に同じ文字を指定し、桁数には必要となる数値を指定します。
2 RPAD( '9' , 10, '9' ) AS "RPAD:10桁表示" |
3 ,LPAD( '9' , 10, '9' ) AS "LPAD:10桁表示" |
この処理を関数化してみましたので、以下に示します。
SQL> CREATE OR REPLACE FUNCTION CHAR_REPEAT ( |
13 RETURN LPAD(InChar, UnitWk, InChar); |
2 CHAR_REPEAT( 'A' , 0) || ' / ' || |
3 CHAR_REPEAT( '0' , 5) || ' / ' || |
CHAR_REPEAT( 'A' ,0)|| '/' ||CHAR_REPEAT( '0' ,5)|| '/' ||CHAR_REPEAT( '9' ,9) |
本書用のWebアプリを使ってSQLを実行し学習していきます。初心者の方に分かりやすく、図表を多く使って解説されています。 学習の最後には200問越えのドリルが付いていてSQLのスキルが試せる様になっています。