Sql 使用指定字元補足字串長度 (數字補0) LPAD 和 RPAD 函數

很多 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>
        -----
    

留言