日期:2014-05-18  浏览次数:20511 次

SQL SERVER 怎样处理查询出来的结果集,结果集是给一个变量的,但好像会被最后一个值潜代了,请教了
--处理,单位右边多余的0,如 5.62002000 处理后变成5.62002
declare @_str varchar(8);set @_str=null; --存放单价字符串变量,如5.62002
declare @_strleft varchar(8);set @_strleft=null;--存放以小数点为分隔,左边的字符串,如:5
declare @_strright varchar(8);set @_strright=null;--存放以小数点为分隔,右边的字符串,如:62002
declare @_k int;set @_k=0;--小数点位置
declare @_strlen int;set @_strlen=0; --单价字符串变量全长度
declare @_len int;set @_len=0;--以小数点分隔右边字符串的长度
declare @_right varchar(8);set @_right=null;--以小数点分隔右边字符串处理后的值

select @_str=v_ship_info.net_weight from dbo.v_ship_info where v_ship_info.net_weight is not null

select @_strlen=len(@_str),@_k=PATINDEX('%.%',@_str), @_strleft=SUBSTRING(@_str,1,@_k-1),@_strright=SUBSTRING(@_str,@_k+1,@_strlen)
select @_len=len(@_strright);
while(@_len>0)
  begin
  if(@_len>0)
  begin
select @_right=substring(@_strright,@_len,1);  
  if(@_right!='0')
begin--
  set @_right=substring(@_strright,1,@_len);  
  break;
end
else
begin
set @_len=@_len-1;
end
end
else
begin
set @_right=substring(@_strright,1,@_len);
break;
end
  end
select @_strleft+'.'+@_right

v_ship_info.net_weight 这个视图,查询出来有好几个结果,我想每个结果的单价都进行处理一下并返回,全部查询,

但是,结果被最后一条记录潜代了,向大家请教有什么办法,能全部进行处理并作查询显示,我SQL储存过程很菜,请高手指点?

前期显示, 希望结果
0.000000 0
0.000000 0
4.560000 4.56
4.230000 4.23


------解决方案--------------------
参考:
http://www.cnblogs.com/insus/articles/2015043.html