declare @total intselect @total=substring(nu2,1,2)-ubstring(nu1,1,2) update t1 set tonu=3 whre @total >159
这样写程序不能实现,只有这样才行
update t1 set tonu=3 where substring(nu2,1,2) -substring(nu1,1,2)>159我想用变量@toatla来代替substring(nu2,1,2) -substring(nu1,1,2)可以简化很

解决方案 »

  1.   

    substring函数的返回值好像是字符变量吧;
    两个字符变量向减结果赋值给一个int类型的变量是要出错的;
    至于你后面用两个字符串向减的结果跟一个整形变量比较可以得出结果;我想可能是在比较操作里有默认转换吧;
    但赋值操作肯定不存在这种转换的;
      

  2.   

    select @total=cast(substring(nu2,1,2)-ubstring(nu1,1,2) as int)