oraclesql:0001+1怎么才能等于0002啊

比如当前最大编号为0010,0010+1=0011,怎么把前边的00给加上?

最大编号是从0001开始自增

愤怒的老头 发布于 2021-6-22 14:01
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
听雨轩Lv5初级互助
发布于2021-6-22 14:16(编辑于 2021-6-22 14:21)

1.  select lpad(to_number('0001')+1,4,'0') from dual;

2.  select case when to_number('0010')+1<9 then '000'||to_char(to_number('0010')+1)            when to_number('0010')+1<99 then '00'||to_char(to_number('0010')+1)            when to_number('0010')+1<999 then '0'||to_char(to_number('0010')+1)       else to_char(to_number('0010')+1) end          from dual

最佳回答
0
snrtuemcLv8专家互助
发布于2021-6-22 14:09
最佳回答
0
axingLv6专家互助
发布于2021-6-22 14:26

select lpad('0010'+1,4,0) as a from dual

image.png

lpad(字符串,4,0)表示用0将字符串补齐到4位

最佳回答
0
梦已元Lv4初级互助
发布于2021-6-22 14:26

string((emp_id + 1),'000')

最佳回答
0
shirokoLv6资深互助
发布于2021-6-22 14:29

select SUBSTR(CONCAT('0000','0010'+1),-4,4) FROM DUAL 

前方拼接0000然后取最后4位就行了

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