Check if TSQL field has contain more than 2 decimal place — TSQL上查看欄位上的有沒有多過2個小數位的資料

每個月同事都要把我寫的Invoice Program的數據輸出到一些會計軟件的格式..
方便其他公司的會計部入資料..
很可惜…由於公司的數據的Data TypeMoney
但是從會計的角度來看…
最小的數值是1 penny E.G. 0.01英鎊
是不可以有0.001英鎊的…因為英鎊最小面額的數值是1 Penny E.G 0.01英鎊..
不知道為什麼..可能是要處理的數據是4個小數位的關係..
久不久便會有些資料…處理完成後會有多過2個弓數位的數值1..
令到不能Export到會計軟件上…
所以便要人手的找出有問題的數據..看看那一個record有多過2個小數位

這個問題出現了很久..
今天終止有時間去思考一下更好的解決方法
方便找出有問題的資料… E.G. 多過2個小數位的record

之後便想到一個Quick Fix的解決方法

就是我們可以寫一個簡單的TSQL WHERE Round(Fieldname,2) <>Fieldname
來找出多過2個小數位的record
E.G.
如果資料是2個小數位的話..Round(FieldName,2) 的數值會和 FieldName的一樣的
如果資料是2個小數位的話…Round(FieldName,2) 便會小過或大過FieldName的數值了…
E.G.

SELECT *
FROM ShareChiWai_SampleData
WHERE ROUND(FieldName,2) <> FieldName

e.g. 
Round(0.001,2) = 0
Round(0.01,2) = 0.01

Hope you find it useful

One thought on “Check if TSQL field has contain more than 2 decimal place — TSQL上查看欄位上的有沒有多過2個小數位的資料

  1. Pingback: TSQL Get Number of Decimal Place Digit – TSQL 找出數據有多少個小數位是有數值的 | Share ChiWai/Share 智慧/智慧分享 – 技術分享/Tech Blog

Leave a Reply