2014-03-19 39 views
1

地方,我有一個要求的Sql截斷成十進制條件

DECLARE @Test TABLE 
(Id int not null, 
AMOUNT decimal(20,3) not null) 
Insert into @Test values(1, 100.943) 
Insert into @Test values(2, 100.000) 
Insert into @Test values(3,100.943) 


SELECT Id, 
case 
when Id = 2 then 
CAST(ROUND(AMOUNT,2,4) AS DECIMAL(19,2)) 
else AMOUNT 
end as AMOUNT 
from @Test 

,但它不會產生期望的結果。 返回的結果是

Id AMOUNT 
1 100.943 
2 100.000 
3 100.943 

我怎樣才能獲得金額被截斷爲2位小數,只有當ID = 2

預期的結果是

Id AMOUNT 
1 100.943 
2 100.00 
3 100.943 
+0

你會得到什麼結果? –

+0

您的查詢本身工作正常在這裏檢查http://sqlfiddle.com/#!3/d41d8/31700,這也是http://sqlfiddle.com/#!3/d41d8/31701 –

+0

編輯我的問題與我得到的結果和我所期待的 – xaria

回答