很多 sql 都有 LPAD() 和 RPAD() 函數,本次示範以 oracle 資料庫為例
LPAD 就是從左邊開始填充指定字元直到長度足夠RPAD 就是從右邊開始填充指定字元直到長度足夠
兩個的語法一樣,我們就使用 LPAD 示範
基本用法:
lpad(字串, 長度, 填充字元)
註1: 在 oracle 中,如果是 NULL,回傳資料依然是 NULL
註2: 在 oracle 中,如果原始資料超過指定長度,則會被截斷
範例
補0
長度不足 5 時左側補 0:
select lpad(123, 5, 0) a from dual;
-----
00123
-----
長度不足 5 時右側補 0:
select rpad(123, 5, 0) a from dual;
-----
12300
-----
補字串
長度不足 5 時左側補 字串:
select lpad(123, 5, '*') a from dual;
-----
**123
-----
長度不足 5 時右側補 字串:
select rpad(123, 5, 0) a from dual;
-----
123**
-----
過長被截斷
lpad 過長被截斷(右側先消失)
select lpad(123456, 5, '*') a from dual;
-----
12345
-----
rpad 過長被截斷(還是右側先消失)
select rpad(123456, 5, '*') a from dual;
-----
12345
-----
遇到 null 不會改變
lpad 遇到 null 回傳是 null
select lpad(null, 5, '*') a from dual;
-----
<null>
-----
rpad 遇到 null 回傳還是 null
select rpad(null, 5, '*') a from dual;
-----
<null>
-----
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com