2017-09-13 110 views
0

我在十進制(18,2)類型的數據量和貨幣char類型SQL服務器鑄造十進制數據

Currency Amount 
USD   1234.67 
JPY   9876.00 

我想選擇這樣

Currency Amount 
USD   1234.67 
JPY   9876 

數據當貨幣爲日元時,我嘗試將數據類型更改爲十進制(18,0),但當貨幣爲日元時,仍然會得到2位小數 這是我的SQL代碼

CASE WHEN remitting_currency ='JPY' THEN CAST(SUM(c.amount) AS decimal(18,0)) ELSE CAST(SUM(c.amount) AS decimal(18,0)) END as amount 

的代碼仍然可以得到這樣的

Currency Amount 
    USD   1234.67 
    JPY   9876.00 

數據有另一種方式?或者我的代碼有什麼問題?

謝謝

+5

這是演示文稿問題。您可以在前端應用程序中以您想要的方式格式化結果 – Squirrel

+0

表中的金額列的數據類型是什麼? –

+0

@Squirrel是的,我可以得到我想要的東西,當我在前端工作時,但我想在我的查詢中嘗試 謝謝 – ian

回答

0

這可以通過相應地投射來實現,具體取決於Amount列的預期用途。

像這樣的事情也許

declare @table1 table(Currency varchar(100), Amount money) 

INSERT INTO @table1 
SELECT 'USD', 1234.67 
UNION SELECT 'JPY',9876 

SELECT Currency, 
[Amount] = CASE 
      WHEN Currency='JPY' THEN cast(cast(Amount as int) as varchar(100)) 
      ELSE cast(Amount as varchar(100)) END 
FROM @table1 

然而,在原則上,我同意@松鼠的評論,這很可能呈現的問題,也許應該滿足那裏。

+0

謝謝,我已經試試@squirrel建議 ,它已經完成 我只想學習一些東西,所以我想試試我的查詢 – ian