• 记录生成流水号的方法


    背景:合同表: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个字符开始截取后面所有的字符串。

  • 相关阅读:
    Nginx配置文件详解
    JVM调优—性能分析神器-JProfiler详解
    Navicat Premium 15破解
    Nginx配置反向代理,负载均衡,动静分离,高可用
    Nginx安装和常用命令
    Spring中ApplicationContextAware的作用
    java中发起http和https请求
    MySql高可用架构
    matlab画3维meshgrid/plot3/mesh/surf的用法
    如何规范地编写一个MATLAB函数文件
  • 原文地址:https://www.cnblogs.com/LDJW/p/12652141.html
Copyright © 2020-2023  润新知