在之前一個網誌介紹過用TSQL 找出多過2個小數位的record
Check if TSQL field has contain more than 2 decimal place — TSQL上查看欄位上的有沒有多過2個小數位的資料
今天想和大家介紹一個自己寫的功能..
用來方便找出數據上有多才個小數位是有數值的
E.G.
0.1234 = 4個小數位
0.1200 = 2個小數位
以下是我簡單的功能 Get_NoOfDecimalPlaceDigit
-- ============================================= -- Author: <ShareChiWai> -- Create date: <2012-09-20> -- Description: <This function is used to retrive the number of decimal place digit the given value have> -- ============================================= CREATE FUNCTION [dbo].[Get_NoOfDecimalPlaceDigit] ( ---- 首先declare一個parameter做input @FieldValue AS DECIMAL(19, 6) = 0 ) ---- 輸出的結果是有多少個小數位值..所以是Integer RETURNS INT AS BEGIN ---- 很複雜的一個TSQL... 我用了STR input parameter來把數據轉成了6個小數位的decimal 的string ---- 之後再找出小數位... 再用RIGHT 去取得所有小數位值...再把他轉做INT ---- 用reverse去去除0的餘值... DECLARE @DecimalValue AS INT = CAST(REVERSE(RIGHT(STR(@FieldValue, 20, 6), LEN(STR(@FieldValue, 20, 6)) - CHARINDEX('.', STR(@FieldValue, 20, 6)))) AS INT) ----轉出結果..如果是0的話輸出0.. otherwise輸出數字有多少個數位 ---- 便找到數據上有多才個小數位是有數值的 RETURN CASE WHEN @DecimalValue = 0 THEN 0 ELSE LEN(@DecimalValue) END END
E.G.
SELECT dbo.Get_NoOfDecimalPlaceDigit(12.35012) ---- 結果是5 SELECT dbo.Get_NoOfDecimalPlaceDigit(12.0000) ---- 結果是0
Hope you find it useful
Drag and Drop upload file and tag file with filename and correct path…etc
Media query for different device