zoukankan      html  css  js  c++  java
  • 记录生成流水号的方法

    背景:合同表:Contract_Master   字段:LEGAL_CONT_NO  --法务合同号(唯一性)

    要求前台保存时法务合同号在后台自动生成 

    合同号结构:

    公司代号+采购类型编码+日期+流水号(两位)

    示例:XYZ-CL-200331-01

    其中公司代号、采购类型编码在数据库中都能匹配到,直接拼接

    日期:DateTime.Now.ToString("yyMMdd");

    流水号:SELECT NVL(MAX(TO_NUMBER(SUBSTR(T.LEGAL_CONT_NO,-2,2))),0) NO FROM  Contract_Master T  WHERE  T.LEGAL_CONT_NO   LIKE  'XYZ-CL-200331-%';

    此sql语句查询出的是满足 公司代号+采购类型编码+日期条件的流水号的最大值 ,只需在此值之上加1即可得到本次的流水号

    最后在使用 NO.ToString("00");格式化为2位数  拼接起来就行了

    所用知识点总结:

    1.ToString();

    2.oracle 函数 nvl()、to_number()、max()、substr()

    nvl(a,b) :  若a=null返回b 若a!=null返回a  

    to_number() :可将varchar2或char类型的值转换为数值类型  注意:要转换的字符串类型也要符合数值类型的格式

    max():求一列的最大值

    substr():

     格式1: substr(string string, int a, int b);

     格式2:substr(string string, int a) ;

        格式1:
            1、string 需要截取的字符串
            2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
            3、b 要截取的字符串的长度

        格式2:
            1、string 需要截取的字符串
            2、a 可以理解为从第a个字符开始截取后面所有的字符串。

  • 相关阅读:
    Python中的Dictionary
    Python中的list
    Python的string模块化方法
    Python字符串格式化表达式和格式化方法
    Python中的slice操作
    Python中的字符串
    华为笔试——C++进制转换
    华为笔试——C++消重输出
    华为笔试——C++转换字符串问题
    C++数字三角形问题与dp算法
  • 原文地址:https://www.cnblogs.com/LDJW/p/12652141.html
Copyright © 2011-2022 走看看