sql - 如何根据字段中的值截断或添加小数点 - SQL Server

标签 sql sql-server sql-server-2008 tsql

这是一个示例代码

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 中实现这一点。

最佳答案

试试这个:

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

SELECT ccy,
    CASE WHEN ccy = 'USD' THEN CAST(CAST(amount AS NUMERIC(16,0)) AS VARCHAR)
         WHEN ccy = 'AUD' THEN CAST(CAST(amount AS NUMERIC(16,2)) AS VARCHAR)
         WHEN ccy = 'INR' THEN CAST(CAST(amount AS NUMERIC(16,4)) AS VARCHAR)
    END amount
FROM @Currency

输出:

ccy amount
USD 1234
AUD 1234.00
INR 1234.0000

检查 # SQL Fiddle 中的答案

关于sql - 如何根据字段中的值截断或添加小数点 - SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50292320/

相关文章:

java - 表存在时出现SQLException

sql - 在laravel中链接2个数据集的最有效方法

sql-server - FULL OUTER JOIN 和哪里可以获得真正的结果?

sql-server - 我运行的是 32 位还是 64 位 Sql Server

asp.net - 尝试为文件…database1.mdf附加自动命名的数据库失败

sql-server-2008 - 如何解决 Microsoft SQL 对 AppHarbor 地理类型的依赖

sql - patindex t-sql 特殊字符

php - 条件准备语句不切换

sql-server - 使用 SSRS 2016 进行自定义身份验证(安全扩展)

sql-server - 使用带参数的 DISTINCT 时 select 语句性能下降