如何增加非数字列值?

时间:2011-07-17 00:51:11

标签: sql oracle

我有一个用于序列号的列。 该列中的值看起来像'WT0000004568'

我需要找到最大值并将计数器部分递增1以创建新的序列号。 对于此示例,结果值将为“WT0000004569”。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

正如Thilio指出的那样,从性能和并发问题来看,这通常是一个糟糕的设计。如果我们假设您拥有单个用户系统并且不特别关注性能,那么您可以执行类似

的操作
SQL> ed
Wrote file afiedt.buf

  1  select 'WT' ||
  2         to_char(
  3           to_number(substr('WT0000004568',3)) + 1,
  4           'fm0000000000')
  5*   from dual
SQL> /

'WT'||TO_CHAR
-------------
WT0000004569