ORACLE 字符串補零


標准函數Lpad 可以實現左補零,但是如果多於需要長度,則會截斷字符串。
如下:
-----------------------
情況一:需要補零。   
    SELECT LPAD ('1234' , 5 , '0') FROM DUAL
    結果:01234        正確 
情況二:不需要補零。
    SELECT LPAD ('123456' , 5 , '0') FROM DUAL
    結果:12345        錯誤 
-----------------------

有如下方式實現:
1 使用條件判斷語句:CASE WHEN
   SELECT 
   CASE 
     WHEN LENGTH(str) < 5 THEN TO_CHAR(str ,'00000') 
     ELSE str 
     END
    FROM DUAL
  情況一:
    str:='123456'
    結果:123456
  情況二:結果:01234
    str:='1234'
    結果:01234
2 巧妙使用CONCAT SUBSTR 
   因為SUBSTR的開始Index超過字符串長度是,返回空字符串。  如 SUBSTR('0000' , 5),結果為:空字符串。
SELECT CONCAT(
    SUBSTR('0000' , LENGTH(str)) , 
    str) FROM DUAL
  情況一:
    str:='123456'
    結果:123456
  情況二:結果:01234
    str:='1234'
    結果:01234


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM