C
cnhotel
Unregistered / Unconfirmed
GUEST, unregistred user!
create function getskfse3(@gysdm varchar(30),@syyf smallint) returns float as<br>begin<br> declare @result float<br> declare @i smallint<br> declare @sqltxt varchar(1500) /*问题出在这里*/<br> set @sqltxt='csye'<br> if @syyf=1 select @result=isnull(csye,0) from qmye2006 where dm=@gysdm <br> set @i=1<br> if @syyf>1 and @syyf<=12<br> begin<br> while @i<=@syyf <br> begin<br> if len(@sqltxt)>0 set @sqltxt=@sqltxt+'+'<br> set @sqltxt=@sqltxt+'zc'+convert(varchar,@i)+'-sr'+convert(varchar,@i)+'-xycj'+convert(varchar,@i)<br> set @i=@i+1<br> end <br> select @result=(@sqltxt) from qmye2006 where dm=@gysdm <br> end<br> return @result<br>end<br><br>执行:<br>select dbo.getskfse3('JDBE-000',12)<br>提示:<br>将数据类型 varchar 转换为 float 时出错。<br><br>我在调试的时候,返回 varchar (1500) 也就是@sqltxt的值内容是:<br>csye+sr1-zc1-xycj1+sr2-zc2-xycj2+sr3...<br><br>本意是通过select @result=@sqltxt <br>我理想的结果应该是:<br>select @result=csye+sr1-zc1-xycj1+sr2-zc2-xycj2+sr3 from qmye2006 where dm=@gysdm<br>得出结果返回的...现在出错,<br>应该是在select @result=@sqltxt 这个部分,请教什么原因呢?用什么可以代替让sql执行?