码迷,mamicode.com
首页 > 数据库 > 详细

分享 SqlServer中常用且实用的几个数值处理自定义函数

时间:2014-08-16 12:28:10      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   ar   cti   div   

--数字处理的几个常用自定义Sql函数

--小数开头没有0和末尾多余0处理
CREATE function [dbo].[FormatFloat](@dec decimal(18,10))
 returns varchar(30)
 as
 begin
 declare @inValue varchar(30);
 set @inValue = (CONVERT(decimal(18,10),@dec));
 declare @returnValue varchar(30)
 if(@inValue=‘‘)
    set @returnValue=‘‘ --空的时候为空
else if (charindex(.,@inValue) =0)
    set @returnValue=@inValue --针对不含小数点的
else if ( substring(reverse(@inValue),patindex(%[^0]%,reverse(@inValue)),1)=.)
           set @returnValue =left(@inValue,len(@inValue)-patindex(%[^0]%,reverse(@inValue))) --针对小数点后全是0的
      else
           set @returnValue =left(@inValue,len(@inValue)- patindex(%[^0]%.%,reverse(@inValue))+1) --其他任何情形
return @returnValue

--小数格式转千分位格式
CREATE function [dbo].[FormatFloat3](@dec decimal(18,10))
 returns varchar(30)
 as
 begin
return CONVERT(VARCHAR(30),cast(@dec as money),1);
end

--小数格式转小数点后两位的金额格式
CREATE function [dbo].[FormatFloat2](@dec decimal(18,10))
 returns varchar(30)
 as
 begin
return CONVERT(VARCHAR(30),CAST(@dec as decimal(18,2))) ;
end

--执行效果

SELECT dbo.FormatFloat(1233456.12800)
1233456.128


SELECT dbo.FormatFloat3(1233456.12800)
1,233,456.13


SELECT dbo.FormatFloat2(1233456.12800)
1233456.13

分享 SqlServer中常用且实用的几个数值处理自定义函数,布布扣,bubuko.com

分享 SqlServer中常用且实用的几个数值处理自定义函数

标签:style   blog   color   io   for   ar   cti   div   

原文地址:http://www.cnblogs.com/shuangxiu/p/3916226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!