Lpad Function:在PL/SQL中用于往源字符串的左侧填充一些字符。

函数参数:​lpad( string1, padded_length, [ pad_string ] )

其中

string1:源字符串

padded_length:最终返回的字符串的长度,如果最终返回的字符串的长度比源字符串的小,那么此函数实际上对源串进行截断处理

pad_string:用于填充的字符,可以不填,默认为空字符

下面是几个实例:

eg:



[sql]​ 

​view plain​

​copy​



  1. --返回值长度大于源字符串长度,将进行填充  
  2.    select lpad('zhanglt',10,'z') from dual;  
  3.    结果为:zzzzhanglt  
  4.    --返回值长度小于源字符串长度,将进行截断  
  5.   select lpad('zhanglt',3,'z') from dual; 
  6.    结果为:zha    这时候的'z' 已经没用,可以删掉

默认情况下将用空格进行填充。


Rpad函数的用法与lpad基本一致,只不过填充方向在左边,需要注意的一点是如果长度小于源串,那么仍然进行截断,并且截断时从左边第一个字符开始。


rpad函数从右边对字符串使用指定的字符进行填充   

rpad(string,padded_length,[pad_string])   

string 表示:被填充的字符串   

padded_length 表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把字符串截取成从左到右的n个字符;   

pad_string 是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。   

例如:   

rpad('tech', 7); 将返回'tech '   

rpad('tech', 2); 将返回'te'   

rpad('tech', 8, '0'); 将返回'tech0000'   

rpad('tech on the net', 15, 'z'); 将返回 'tech on the net'   

rpad('tech on the net', 16, 'z'); 将返回 'tech on the netz'

SQL> select rpad('aa',5)||decode('bbb',null,' ',rpad('bbb',8))||rpad('cccc',12) from dual;


RPAD('AA',5)||DECODE('BBB',NUL

------------------------------

aa   bbb     cccc