0

使用しているかなり大きなストアドプロシージャがあるので、関係するスニペットのみを含めます。

                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」を設定することで問題が解決すると思いましたが、そうではありません。

助言?

4

2 に答える 2

1

RevenueAmountがまたは"0"の場合の代わりに表示するには:"0.0"0null

case IsNull(RevenueAmount, 0)
    when 0 then QUOTENAME('0', '"')
    else QUOTENAME(RevenueAmount, '"')
end
于 2012-06-01T00:08:27.707 に答える
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] 
于 2012-05-31T23:28:09.583 に答える