将字符值增加 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';
我在 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';