增加字符值1

时间:2016-02-14 09:02:02

标签: sql oracle oracle10g

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

0000

0001

0002

我想将值递增1,这意味着结果应为

0003

使用sql语句。

我该怎么做

列数据类型为varchar2

编辑1

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

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

2 个答案:

答案 0 :(得分:1)

实际上对于oracle数字0003和3是相同的,仅在输出格式上有所不同 如果您想要格式化输出或将此值用作char序列,您可以按照本文 - https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm进行操作,并执行以下操作:

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

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

答案 1 :(得分:1)

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

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