解析に使用している一時テーブルがあります#rp
。
#rp
nvarchar(max)
には、小数点以下2桁までの正と負の数値を保持する列が含まれます(#rp.col8
例: `1234.26')。
次のクエリを実行して、変換された値のセットを取得できます。
select * from
(
select CONVERT(decimal(18,2),rp.col8) as PARSEAMT
from #rp
where
--#rp filtering criteria
)q
ただし、PARSEAMT = 0
次の方法でクエリを実行しようとすると、標準の「8114、データ型varcharから数値への変換エラー」が発生します。
select * from
(
select CONVERT(decimal(18,2),col8) as PARSEAMT
from #rp
where
--#rp filtering criteria
)q
where q.PARSEAMT = 0
そのwhere
句がないと、クエリは正常に実行され、期待値が生成されます。
where q.PARSEAMT = 0.00
やなどの他の句も試しましwhere q.PARSEAMT = convert(decimal(18,2),0)
た。
私の比較で何が間違っているのですか?