lpad(nvl(to_number(substr(max(s.begin_date),5,4)),0)+1,4,0)求助大家伙了.
刚开始学习使用Orcal,对此不太在行

解决方案 »

  1.   

    max(s.begin_date):取begin_date最大值
    substr(max(s.begin_date),5,4):从第5个字符开始,截取4个字符
    to_number(substr(max(s.begin_date),5,4)):截取的字符转换为数字类型
    nvl(to_number(substr(max(s.begin_date),5,4)),0):如果转换后数字为null则返回0
    lpad(nvl(to_number(substr(max(s.begin_date),5,4)),0)+1,4,0):取出数字,如果不足4位,则在前面用字符'0'补足4位。
    oracle函数大全
      

  2.   

    ----lpad(nvl(to_number(substr(max(s.begin_date),5,4)),0)+1,4,0)
    max(s.begin_date)取s.begin_date字段中的最大值
    substr(max(s.begin_date),5,4))从此列中第5个字符开始截取字符串,截取4位
    to_number(substr(max(s.begin_date),5,4)截取后的字符转化为数字类型的。
    nvl(to_number(substr(max(s.begin_date),5,4)),0)如果to_number转换后为null,返回0
    lpad(nvl(to_number(substr(max(s.begin_date),5,4)),0)+1,4,0)不足位数,如果前面少于4位
    那么再前端补足位数0