解析に使用している一時テーブルがあります#rp。
#rpnvarchar(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)た。
私の比較で何が間違っているのですか?