我使用此代码但转换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))
答案 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
的最后两个字符是数字。