首页 > 代码库 > 分享 SqlServer中常用且实用的几个数值处理自定义函数
分享 SqlServer中常用且实用的几个数值处理自定义函数
--数字处理的几个常用自定义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 beginreturn CONVERT(VARCHAR(30),cast(@dec as money),1);end--小数格式转小数点后两位的金额格式CREATE function [dbo].[FormatFloat2](@dec decimal(18,10)) returns varchar(30) as beginreturn 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。