我在表的一列中有以下数据,而不是主键
0000
0001
0002
我想将值递增1,这意味着结果应为
0003
使用sql语句。
我该怎么做
列数据类型为varchar2
编辑1
SELECT col + 1
FROM tab2
where prod_id = 'A267'
结果是3,理想情况下应该是0003
答案 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';