将字符值增加 1

Increment Character Value By 1

我在 table 的一列中有以下数据,这不是主键

0000

0001

0002

我想将值增加 1,这意味着结果应该是

0003

使用 sql 语句。

我该怎么做

列数据类型为varchar2

编辑 1

SELECT col + 1
  FROM tab2 
  where prod_id = 'A267'

结果是3,理想情况下应该是0003

其实对于oracle numbers 0003和3是一样的,区别只是输出格式 如果你想格式化你的输出或使用这个值作为一个字符序列,你可以按照这篇文章 -https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm 做这样的事情:

 SELECT TO_CHAR(number, '0999')
 FROM DUAL;

如果您只想将此值用于子 select 作为数字,请不要考虑此差异。

使用 LPAD 在左侧添加 '0' 并使用 TO_CAHR 转换字符串中的数字(因为 col+1 得到一个数字)

SELECT LPAD(TO_CHAR(col + 1),4, '0')
FROM tab2 
where prod_id = 'A267';