分享 SqlServer中常用且實用的幾個數值處理自訂函數

來源:互聯網
上載者:User

標籤: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 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個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.