这是示例代码

declare @Currency table (ccy char(3),amount money)
insert into @Currency
values ('USD',12.34), ('AUD',12.34), ('INR',12.34)

我需要显示如下输出,
when ccy = 'USD' then 12 (No decimals- cut off after decimal values)

when ccy = 'AUD' then 12.34 (Two decimals)

when ccy = 'INR' then 12.3400 (Four decimals)

预期输出:
 ccy    amount

 USD    12
 AUD    12.34
 INR    12.3400

请建议我如何在Tsql中实现这一目标。

最佳答案

您需要将值转换为字符串。 SQL Server为此具有一个便捷的功能str():

select ccy,
       (case when ccy = 'USD' then str(amount, 10, 0)
             when ccy = 'AUD' then str(amount, 10, 2)
             when ccy = 'INR' then str(amount, 10, 4)
        end)
from @currency;

您可能还需要研究 format() 函数。这也允许您包括货币符号。

10-05 19:29