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

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    JS面向对象编程的实现
    初见Javascript
    详解promise
    radio单选按钮组操作
    cookie欺骗实战案例
    XSS攻击
    前端如何实现异步加载
    日常问题
    求1+2+...+n
    二叉搜索树的后序遍历序列
  • 原文地址:https://www.cnblogs.com/jijm123/p/13687256.html
Copyright © 2011-2022 走看看