zoukankan      html  css  js  c++  java
  • 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

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    Celery
    windows笔记目录
    Linux笔记目录
    python笔记目录
    rsa
    c#目录
    webpack3.x配置
    RabbitMQ服务安装(Linux)
    JavaScript验证用户输入
    IP地址检测工具
  • 原文地址:https://www.cnblogs.com/jijm123/p/13687256.html
Copyright © 2011-2022 走看看