我有十进制(18,2)类型的数据量和货币字符类型
Currency Amount
USD 1234.67
JPY 9876.00
我想选择这样的数据
Currency Amount USD 1234.67 JPY 9876
当货币为JPY时,我尝试将数据类型更改为十进制(18,0),但当货币为JPY时,它仍然会得到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
还有另外一种方法吗?或者我的代码有什么问题?
谢谢
答案 0 :(得分:0)
这可以通过相应的铸造来实现,具体取决于金额列的预期目的。
这样的事可能
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
然而,原则上,我同意@Squirrel的评论,这可能是一个演示问题,应该在那里得到满足。