2017-03-29 13 views
0

T-SQL(SQL Server 2005)でラウンドする方法が必要です。T-SQLラウンド特殊ケース

0.0041 -> 0.005 
0.0049 -> 0.005 
0.0040 -> 0.004 

私はROUND()と、次の選択を試してみました:

SELECT ROUND(0.004, 3,1) + .001 

問題がある:それは0.0040では動作しません - > 0.004

答えて

2

この:

SELECT CEILING(1000 * 0.0041)/1000.0 

生産:

この一方、
0.005 

SELECT CEILING(1000 * 0.004)/1000.0 

は生成します。

0.004 
1

これを試してみてください:

SELECT X 
, CEILING(X * 1000)/1000 AS X4 
FROM (
SELECT 0.0041 X UNION ALL 
SELECT 0.0049 UNION ALL 
SELECT 0.0040) A 

出力:

X          X4 
--------------------------------------- --------------------------------------- 
0.0041         0.005000 
0.0049         0.005000 
0.0040         0.004000 
関連する問題