LPADとRPADファンクションは、Oracleデータベースで文字列を特定の長さに整形する際に非常に便利なツールです。本記事では、初心者にも分かりやすい構成で基礎的な使い方から応用例までを紹介します。さらに、SCOTTスキーマを用いた実例やベストプラクティスもご紹介します。
リンク
リンク
リンク
1. LPAD, RPADとは?
LPADとRPADは、文字列を指定した長さまでパディング(埋め込み)するためのOracle SQLファンクションです。
- LPAD: 左側を指定文字で埋める。
- RPAD: 右側を指定文字で埋める。
これらは、データ整形、帳票作成、ログの見やすさ向上など、さまざまな場面で活用されます。
2. 基本構文と動作の仕組み
LPADの構文
LPAD(文字列, 長さ, パディング文字)
RPADの構文
RPAD(文字列, 長さ, パディング文字)
引数 | 説明 |
---|---|
文字列 | 対象となる文字列。 |
長さ | 最終的な文字列の長さ。 |
パディング文字 | 長さに満たない部分を埋める文字。省略時はスペースが使用されます。 |
3. SCOTTスキーマを用いた実例
3.1 LPADの例:従業員番号をゼロで埋める
以下のSQLでは、EMPNO
列の値を5桁の文字列に整形します。
SELECT EMPNO, LPAD(EMPNO, 5, '0') AS PADDED_EMPNO
FROM EMP;
結果
EMPNO | PADDED_EMPNO |
---|---|
7369 | 07369 |
7499 | 07499 |
7521 | 07521 |
3.2 RPADの例:役職名を整形
JOB
列の値を10文字の文字列に整形し、余白部分を*
で埋めます。
SELECT JOB, RPAD(JOB, 10, '*') AS PADDED_JOB
FROM EMP;
結果
JOB | PADDED_JOB |
---|---|
CLERK | CLERK***** |
SALESMAN | SALESMAN** |
MANAGER | MANAGER*** |
3.3 データの視覚的整形
従業員名(ENAME)を左揃えで10文字幅、役職名(JOB)を右揃えで10文字幅に整形して連結します。
SELECT
LPAD(ENAME, 10, ' ') || RPAD(JOB, 10, '.') AS FORMATTED_RESULT
FROM EMP;
結果
FORMATTED_RESULT |
---|
SMITHCLERK….. |
ALLENSALESMAN.. |
WARDSALESMAN… |
4. 応用的な活用方法
4.1 数値データのゼロ埋め
商品コードを8桁でゼロ埋めする。
SELECT LPAD(PRODUCT_ID, 8, '0') AS PADDED_ID
FROM PRODUCTS;
4.2 複数文字のパディング
LPAD
とRPAD
は複数文字の繰り返しパターンを利用できます。
SELECT RPAD('TEST', 10, 'AB') AS PADDED_STRING
FROM DUAL;
結果: TESTABABAB
4.3 カラム幅の調整
帳票などで見やすいレポートを作成。
SELECT
LPAD(ENAME, 15, ' ') AS NAME_COLUMN,
RPAD(JOB, 15, ' ') AS JOB_COLUMN
FROM EMP;
結果
NAME_COLUMN | JOB_COLUMN |
---|---|
SMITH | CLERK |
ALLEN | SALESMAN |
WARD | SALESMAN |
5. 注意点とベストプラクティス
- NULLの扱い
パディング対象がNULLの場合、結果もNULLとなります。 - 長さの制約
指定した長さを超える文字列は切り捨てられます。 - 実行速度への影響
パディング処理は比較的軽量ですが、大量データに適用する場合はインデックスの有効性を確認してください。
6. 演習問題
問題1: 商品コードの右揃え
以下のコードを実行して、商品コードが右揃えで埋められる結果を確認してください。
SELECT RPAD('1234', 10, '#') AS PADDED_CODE FROM DUAL;
問題2: カスタムフォーマットの適用
従業員名をアスタリスクで左揃え、役職名をハイフンで右揃えする結果を考えてみましょう。
SELECT
LPAD(ENAME, 8, '*') || RPAD(JOB, 8, '-') AS FORMATTED_ROW
FROM EMP;
7. まとめ
LPADとRPADは、文字列整形において非常に強力なツールです。特に、データ出力のフォーマット調整やレポート作成時にその真価を発揮します。本記事を参考に、実務での活用方法をマスターしてください!
次の一歩:
- 他の文字列ファンクション(SUBSTR, INSTR, LENGTHなど)と組み合わせて活用する。
- パディングを使ったフォーマット出力を実際のレポートで試してみる。
コメント