代码改变世界

删除字符串尾数连续为零的自定义函数

2013-11-20 15:27  dsding  阅读(293)  评论(0)    收藏  举报

最近工作中遇到一个问题,需要将一个varchar字段尾数连续为零的部分删除掉。SQL SERVER系统函数实现不了,只有想办法自定义函数来实现了。 函数代码如下: 

CREATE FUNCTION [dbo].[zerosc](@obj Nvarchar(255))   
 returns Nvarchar(255)   
 AS   
 BEGIN   
  declare @i int,@K int,@j Nvarchar(255)   
  select @j=@obj   
  select @i=0, @K=LEN(@j)   
  IF CHARINDEX('.',@j)=0   
  return (@j)   
  ELSE   
  WHILE(SUBSTRING(@j,@K,1) = '0')   
   BEGIN   
   SET @i=@i+1   
   SET @K=@K-1   
   END     
   SET @j=LEFT(@j,len(@j)-@i)   
   IF CHARINDEX('.',@j)=LEN(@j)   
   begin   
   set @j=left(@j,len(@j)-1)   
   end   
   return(@j)       
END