一、前言
很多企業管理系統,在單據及報表的使用時,都會提供小數點有效數字后0是否顯示的功能,在金蝶云星空的BOS平臺,這個功能叫"隱藏尾0",現在假如自己開發一個系統,提供可配置的"隱藏尾0"的功能,該如何實作呢?以下是資料庫開發方面的解決方案,僅供參考,
二、方案
方法一、將資料轉換為REAL型別
1)代碼:
SELECT CAST(1 AS REAL) SELECT CAST(1.000000 AS REAL) SELECT CAST(1.010000 AS REAL)
2)結果:

方法二、通過自定義函式實作
1)代碼:
CREATE FUNCTION [dbo].[RC_CLEARZERO](@INVALUE VARCHAR(50)) RETURNS VARCHAR(50) AS BEGIN DECLARE @RETURNVALUE VARCHAR(20) IF (ISNULL(@INVALUE,'')='' OR ISNUMERIC(@INVALUE)=0) --非數字或無效數字 SET @RETURNVALUE='' ELSE IF (CHARINDEX('.',@INVALUE)=0) --不含小數點 SET @RETURNVALUE=@INVALUE ELSE IF (SUBSTRING(REVERSE(@INVALUE),PATINDEX('%[^0]%',REVERSE(@INVALUE)),1)='.') --小數點后全為0 SET @RETURNVALUE=LEFT(@INVALUE,LEN(@INVALUE)-PATINDEX('%[^0]%',REVERSE(@INVALUE))) ELSE SET @RETURNVALUE=LEFT(@INVALUE,LEN(@INVALUE)-PATINDEX('%[^0]%.%',REVERSE(@INVALUE))+1) RETURN @RETURNVALUE END
2)執行:
SELECT [dbo].[RC_CLEARZERO] ('1') SELECT [dbo].[RC_CLEARZERO] ('1.000000') SELECT [dbo].[RC_CLEARZERO] ('1.010000')
3)結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/542979.html
標籤:其他
下一篇:MySQL資料型別補充
