查找下一个可用的产品ID

时间:2014-09-11 15:38:25

标签: sql numbers product next

首先,我必须为问题的简单性道歉,但我是SQL新手并且正在努力解决这个问题。

我有一个数据库,列出了我们想要创建查询的产品编号,告诉我们下一个可用的数字是什么。

产品编号以000000.00000

的格式记录在Prod_ID列中

前6个数字用于产品类型,第2个5个数字用于产品变体(例如,不同的颜色)。我唯一感兴趣的部分是找到产品ID的下一个可用编号(前6个数字)

在找到ID之后没有使用ID的危险,因为我将是唯一一个管理它的人。

我试过了:

选择IsNull(max(Prod_ID),0)+ 1作为MaxSID FROM Products

但是我收到'转换varchar值时转换失败'失败。 Invali'到数据类型int'

提前致谢

1 个答案:

答案 0 :(得分:1)

试试这个:

declare @Prod_ID varchar(20)
set @prod_id = '000000.00000'

select cast(
        substring(@prod_id,8,5) -- Get second part of string
        as int) +1 as TheNext
  • 子字符串提取ID的第二部分
  • 演员表将其转换为整数
  • +1为您提供下一个值

所以你会看到实际的代码

SELECT cast(substring(prod_id,8,5) as int) +1 as TheNext FROM table WHERE prod_id=123

注意:即使上述内容有效,我也同意有关重新设计此内容的评论