次の SQL を実行していますが、0 の場合は常にヒットするようです。
select
ccy.numberofdecimals,
ABS(round(ts.TRADECCY1AMOUNT, 2)),
CASE
WHEN CCY.NUMBEROFDECIMALS = 0 THEN
CONVERT(Numeric(38,0), ABS(round(TS.TRADECCY1AMOUNT, 0)))
WHEN CCY.NUMBEROFDECIMALS = 2 THEN
CONVERT(Numeric(38,2), ABS(round(TS.TRADECCY1AMOUNT, 2)))
WHEN CCY.NUMBEROFDECIMALS = 3 THEN
CONVERT(Numeric(38,3), ABS(round(TS.TRADECCY1AMOUNT, 3)))
END as 'Transaction Amount',
FROM
blah blah blah
それでも、私の結果セットは常に次のとおりです。
10 進数の 0 を削除すると、正しい結果が得られます。このケースステートメントが常に 0 ケースを評価する理由について、誰か考えがありますか?
ありがとう!