Select 从文本字符串中使用最大 +1 进行投射
Select cast with max +1 from textstring
我正在使用此代码,但在将 varchar 值 'o' 转换为数据类型 int 时出现转换失败。
我的专栏包含示例
o01
o02
o13
select cast('o'+(max(right(panelname, 2 )+1))as varchar(50))
应该使用 Convert 这就是我收到此错误的原因吗?
这是语法错误,这样解决了,但现在值 >10 我想取 tis 结果 o06,现在我取 o6
select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50))
您正在为字符串加一。 1
是一个数字,因此 +
被解释为加法而不是连接。
也许你打算:
select cast('o' + (max(right(panelname, 2 ) + '1')) as varchar(50))
或者,您可能需要:
select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50))
这假设 panelname
的最后两个字符是数字。
我正在使用此代码,但在将 varchar 值 'o' 转换为数据类型 int 时出现转换失败。
我的专栏包含示例
o01
o02
o13
select cast('o'+(max(right(panelname, 2 )+1))as varchar(50))
应该使用 Convert 这就是我收到此错误的原因吗?
这是语法错误,这样解决了,但现在值 >10 我想取 tis 结果 o06,现在我取 o6
select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50))
您正在为字符串加一。 1
是一个数字,因此 +
被解释为加法而不是连接。
也许你打算:
select cast('o' + (max(right(panelname, 2 ) + '1')) as varchar(50))
或者,您可能需要:
select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50))
这假设 panelname
的最后两个字符是数字。