我有一个相当大的存储过程,我正在使用,因此我只会包含我所关注的代码段:
QUOTENAME(isnull(NumberCount,'0'), '"'),
QUOTENAME( isnull(QualifiedCount,'0'), '"'),
QUOTENAME((isnull(RevenueAmount,'0')), '"'),
QUOTENAME(isnull(CurrencyAmount,'0'), '"')
在输出中,除RevenueAmount列外,所有具有NULL值的记录都显示为期望值“0”。显示为“0.0”。这是因为它被声明为NUMERIC(20,2)。如何让它显示值'0'?我认为在isnull条件中设置一个显式值'0'会照顾它,但事实并非如此。
么?
答案 0 :(得分:1)
当RevenueAmount为"0"
或"0.0"
时,要显示0
而不是null
:
case IsNull(RevenueAmount, 0)
when 0 then QUOTENAME('0', '"')
else QUOTENAME(RevenueAmount, '"')
end
答案 1 :(得分: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]