Sql 将数字转换为不带小数点的字符串

Sql 将数字转换为不带小数点的字符串,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在处理一个相当大的存储过程,因此我只包含我所关心的代码片段: QUOTENAME(isnull(NumberCount,'0'), '"'), QUOTENAME( isnull(QualifiedCount,'0'), '"'), QUOTENAME((isnull(RevenueAmount,'0')), '"'), QUOTENAME(isnull(Curre

我正在处理一个相当大的存储过程,因此我只包含我所关心的代码片段:

                QUOTENAME(isnull(NumberCount,'0'), '"'),
                QUOTENAME( isnull(QualifiedCount,'0'), '"'),
                QUOTENAME((isnull(RevenueAmount,'0')), '"'),
                QUOTENAME(isnull(CurrencyAmount,'0'), '"')      
在输出中,除RevenueAmount列外,所有具有空值的记录显示的预期值为“0”。显示为“0.0”的。这是因为它被声明为数字(20,2)。如何使其显示值“0”?我认为在isnull条件中设置显式值“0”可以解决这个问题,但事实并非如此


建议?

您可以在
RevenueAmount
列中执行此操作。诀窍是测试null或0并转换为正确的字符串格式

case RevenueAmount
    when null then QUOTENAME('0.0', '"')
    when 0 then QUOTENAME('0.0', '"')
else cast(QUOTENAME(isnull(RevenueAmount,'0'), '"') as varchar(20)) 
end
as [RevenueAmount] 
要在RevenueAmount为
0
null
时显示
“0”
而不是
“0.0”

case IsNull(RevenueAmount, 0)
    when 0 then QUOTENAME('0', '"')
    else QUOTENAME(RevenueAmount, '"')
end

我猜你的RevenueAmount是0而不是NULL