0. 実験ユーザー「dicdic」でコネクトする。
SQL> conn dicdic/Oracle11g
接続されました。
SQL>
|
1. LPAD関数は、文字列の左側を、第2引数で指定したバイト数になるまで第3指定した文字列で埋め尽くす。
SQL> SELECT 氏名,LPAD(氏名,16,'$\') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 LPAD(氏名,16,'$\')
---------------------------------------- --------------------------------
森永 怜子 $\$\$\森永 怜子
小久保 和歌子 $\小久保 和歌子
三井 美恵子 $\$\三井 美恵子
鶴岡 依子 $\$\$\鶴岡 依子
南田 泰子 $\$\$\南田 泰子
仲村 寿子 $\$\$\仲村 寿子
安藤 顕子 $\$\$\安藤 顕子
金城 美貴子 $\$\金城 美貴子
星 啓子 $\$\$\$\星 啓子
西田 佳奈子 $\$\西田 佳奈子
松崎 麻里子 $\$\松崎 麻里子
江島 貴子 $\$\$\江島 貴子
12行が選択されました。
SQL>
|
2. 文字数ではなくバイト数基準であることに留意する。
SQL> SELECT 氏名,LPAD(氏名,16,'◆') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 LPAD(氏名,16,'◆')
---------------------------------------- --------------------------------
森永 怜子 ◆◆◆森永 怜子
小久保 和歌子 ◆小久保 和歌子
三井 美恵子 ◆◆三井 美恵子
鶴岡 依子 ◆◆◆鶴岡 依子
南田 泰子 ◆◆◆南田 泰子
仲村 寿子 ◆◆◆仲村 寿子
安藤 顕子 ◆◆◆安藤 顕子
金城 美貴子 ◆◆金城 美貴子
星 啓子 ◆◆◆◆星 啓子
西田 佳奈子 ◆◆西田 佳奈子
松崎 麻里子 ◆◆松崎 麻里子
江島 貴子 ◆◆◆江島 貴子
12行が選択されました。
SQL>
|
3. 全角と半角が混在するとデコボコになってしまうことがあるので注意。
SQL> SELECT 氏名,LPAD(氏名,17,'◆W') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 LPAD(氏名,17,'◆W')
---------------------------------------- ----------------------------------
森永 怜子 ◆W◆W森永 怜子
小久保 和歌子 ◆W小久保 和歌子
三井 美恵子 ◆W◆三井 美恵子
鶴岡 依子 ◆W◆W鶴岡 依子
南田 泰子 ◆W◆W南田 泰子
仲村 寿子 ◆W◆W仲村 寿子
安藤 顕子 ◆W◆W安藤 顕子
金城 美貴子 ◆W◆金城 美貴子
星 啓子 ◆W◆W◆W星 啓子
西田 佳奈子 ◆W◆西田 佳奈子
松崎 麻里子 ◆W◆松崎 麻里子
江島 貴子 ◆W◆W江島 貴子
12行が選択されました。
SQL>
|
4. バイト数を短く指定した場合にはパディングがまったくできないばかりか、お尻が切れてしまう。
SQL> SELECT 氏名,LPAD(氏名,8,'◆') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 LPAD(氏名,8,'◆'
---------------------------------------- ----------------
森永 怜子 森永 怜
小久保 和歌子 小久保
三井 美恵子 三井 美
鶴岡 依子 鶴岡 依
南田 泰子 南田 泰
仲村 寿子 仲村 寿
安藤 顕子 安藤 顕
金城 美貴子 金城 美
星 啓子 星 啓子
西田 佳奈子 西田 佳
松崎 麻里子 松崎 麻
江島 貴子 江島 貴
12行が選択されました。
SQL>
|
5. RPAD関数は文字列の右側を埋める。
SQL> SELECT 氏名,RPAD(氏名,16,'$\') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 RPAD(氏名,16,'$\')
---------------------------------------- --------------------------------
森永 怜子 森永 怜子$\$\$\
小久保 和歌子 小久保 和歌子$\
三井 美恵子 三井 美恵子$\$\
鶴岡 依子 鶴岡 依子$\$\$\
南田 泰子 南田 泰子$\$\$\
仲村 寿子 仲村 寿子$\$\$\
安藤 顕子 安藤 顕子$\$\$\
金城 美貴子 金城 美貴子$\$\
星 啓子 星 啓子$\$\$\$\
西田 佳奈子 西田 佳奈子$\$\
松崎 麻里子 松崎 麻里子$\$\
江島 貴子 江島 貴子$\$\$\
12行が選択されました。
|
6. 埋める場所が右側に変わっただけ。
SQL> SELECT 氏名,RPAD(氏名,16,'◆') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 RPAD(氏名,16,'◆')
---------------------------------------- --------------------------------
森永 怜子 森永 怜子◆◆◆
小久保 和歌子 小久保 和歌子◆
三井 美恵子 三井 美恵子◆◆
鶴岡 依子 鶴岡 依子◆◆◆
南田 泰子 南田 泰子◆◆◆
仲村 寿子 仲村 寿子◆◆◆
安藤 顕子 安藤 顕子◆◆◆
金城 美貴子 金城 美貴子◆◆
星 啓子 星 啓子◆◆◆◆
西田 佳奈子 西田 佳奈子◆◆
松崎 麻里子 松崎 麻里子◆◆
江島 貴子 江島 貴子◆◆◆
12行が選択されました。
SQL>
|
7. 埋める場所が右側に変わっただけ。
SQL> SELECT 氏名,RPAD(氏名,17,'◆W') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 RPAD(氏名,17,'◆W')
---------------------------------------- ----------------------------------
森永 怜子 森永 怜子◆W◆W
小久保 和歌子 小久保 和歌子◆W
三井 美恵子 三井 美恵子◆W◆
鶴岡 依子 鶴岡 依子◆W◆W
南田 泰子 南田 泰子◆W◆W
仲村 寿子 仲村 寿子◆W◆W
安藤 顕子 安藤 顕子◆W◆W
金城 美貴子 金城 美貴子◆W◆
星 啓子 星 啓子◆W◆W◆W
西田 佳奈子 西田 佳奈子◆W◆
松崎 麻里子 松崎 麻里子◆W◆
江島 貴子 江島 貴子◆W◆W
12行が選択されました。
SQL>
|
8. お尻が切れてしまうのは、LPADとまったく同じ動き。
SQL> SELECT 氏名,RPAD(氏名,8,'◆') FROM TT01_学生 WHERE 在籍区分コード = 02 and 氏名 Like '%子';
氏名 RPAD(氏名,8,'◆'
---------------------------------------- ----------------
森永 怜子 森永 怜
小久保 和歌子 小久保
三井 美恵子 三井 美
鶴岡 依子 鶴岡 依
南田 泰子 南田 泰
仲村 寿子 仲村 寿
安藤 顕子 安藤 顕
金城 美貴子 金城 美
星 啓子 星 啓子
西田 佳奈子 西田 佳
松崎 麻里子 松崎 麻
江島 貴子 江島 貴
12行が選択されました。
SQL>
|
|