orcale

我有个字段是自动编号,编号唯一,组成方式是:ABCDE+年份+递增编号,比如ABCDE20148888,但是每到新的一年,比如2015年,递增编号又要从0001开始:ABCDE20150001,这样有什么方法可以实现呢?谢谢!           

用户kWEye3931 发布于 2021-5-8 14:39 (编辑于 2021-5-8 16:14)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
孤陌Lv6资深互助
发布于2021-5-8 15:02

如果是就一个人使用 没有并发是好做的 就害怕多人同时使用

  • 用户kWEye3931 用户kWEye3931(提问者) 抛过多人同时使用
    2021-05-08 15:44 
  • 孤陌 孤陌 回复 用户kWEye3931(提问者) https://bbs.fanruan.com/thread-107102-1-1.html 看这个
    2021-05-08 16:00 
最佳回答
0
Kevin-sLv7中级互助
发布于2021-5-8 14:55

这边可以分成2个字段 ABCDE+年份一个字段,递增编号单独一个字段,用SELECT ABCDE+年份 || 递增编号 FROM A LEFT JOIN B ON 1=1 ORDER BY ABCDE+年份,B.递增编号

最佳回答
0
让过去Lv6中级互助
发布于2021-5-8 14:58

这里的关键是查出上一个编号就行了吧,

ABCDE+今年+如果今年等于上一个编号的年,就上一个的后四位+1,否则就是0001,这里转数字,补位啥的就不多说了。

最佳回答
0
177741977Lv6初级互助
发布于2021-5-8 15:05

select to_char(sysdate,'yyyyMMdd')||lpad('1',5,'0') from dual;

再写一个存储过程

  • 5关注人数
  • 498浏览人数
  • 最后回答于:2021-5-8 16:14
    请选择关闭问题的原因
    确定 取消
    返回顶部