从textstring中选择带有最大+1的强制转换

时间:2016-07-21 11:59:54

标签: sql sql-server-2000

我使用此代码但转换varchar值时转换失败' o'数据类型int。

我的专栏包含示例

o01
o02
o13

select cast('o'+(max(right(panelname, 2 )+1))as varchar(50))

应该使用转换为什么我得到这个错误?

这是语法错误,解决了像这样,但现在价值> 10我想采取结果o06,现在我采取o6

select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50))

1 个答案:

答案 0 :(得分:0)

您正在为字符串添加一个。 1是一个数字,因此+被解释为加法而不是连接。

也许你打算:

select cast('o' + (max(right(panelname, 2 ) + '1')) as varchar(50))

或者,您可能需要:

select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50))

这假设panelname的最后两个字符是数字。