select @ItemNoGroup2 = rtrim(cast(@ItemNoGroup as int) - cast(@ItemNoGroup1 as int))
declare @ItemNoGroup as varchar(10),@ItemNoGroup1 as varchar(10),@ItemNoGroup2 as varchar(10) set @ItemNoGroup='100' set @ItemNoGroup1='19'set @ItemNoGroup2 = cast(@ItemNoGroup as int)- cast(@ItemNoGroup1 as int)print @ItemNoGroup2
set @ItemNoGroup2 = cast(@ItemNoGroup as int)- cast(@ItemNoGroup1 as int) 这个相减后,我想它为空,怎么办?
我的存储过程里有这样一个试子,他们都是varchar类型,执行提示:
-------------------------------------------------------------------
服务器: 消息 403,级别 16,状态 1,过程 SP_GS_GM_STOREROOM_D,行 41
对数据类型而言运算符无效。运算符为 subtract,类型为 varchar。
set @ItemNoGroup='100'
set @ItemNoGroup1='19'set @ItemNoGroup2 = cast(@ItemNoGroup as int)- cast(@ItemNoGroup1 as int)print @ItemNoGroup2
这个相减后,我想它为空,怎么办?
如果不转换,也是可以进行相减,但是没有什么意义。
用convert或cast进行数据转换。
用这个式子减后是这样的:1-1=0
可我想要得到:1-1=null,怎么办?
set @t='33'
set @temps=stuff(@r,charindex(@t,@r),len(@t),'')
print @temps
--结果:12dfggdg