今天看到兩個沒有見過的SQL中的函數,總結一下;
函數參數:lpad( string1, padded_length, [ pad_string ] )
其中
string1:源字符串
padded_length: 即最終結果返回的字符串的長度;如果最終返回的字符串的長度比源字符串的小,那么此函數實際上對源串進行截取處理,與substr(string,number1,number2)的作用完全相同,如果padded_length比源字符串的長度長,則用pad_string進行填充,確保返回的最終字符串的長度為padded_length;
pad_string:用於填充的字符,可以不填,默認為空字符
實例:
select lpad('123456',2) from dual --結果為 12
select lpad('123456',7,'0') from dual --結果為 0123456
--注意在左側填充 lpad中的l為left,左側的意思
select rpad('123456',2,'0') from dual --結果為 12
select rpad('123456',7,'0') from dual --結果為 1234560
--rpad 填充在右側,r為right 右側
總結:
可以看到,當string1源字符串的長度小於padded_length時,lpad、rpad的作用是相同的,都是相當於substr截取字符串,當padded_length大於string1源字符串的長度時,lpad為在源字符串的左側填充指定字符或者空格,rpad為在源字符串的右側填充指定字符或者空格;