10進数に変換する列があるので、それを使用してwhere
節を比較することができます。私は、列のすべての値が1.3以上であることを確認したい。私はselect
声明で正常に列を変換しますが、私は次のエラーを取得するwhere句で同じ変換を行うことをしようとしたとき:ケースステートメントを使用してvarcharを10進数に変換し、それをwhere句で使用できますか?
Arithmetic overflow error converting varchar to data type numeric.
私は、SQL Server 2008の
SELECT ID,
CASE
WHEN ISNUMERIC(USER_3) = 1
THEN Convert(varchar(50), CONVERT(decimal(14,2), USER_3))
END AS KG_M
FROM PART
WHERE USER_3 IS NOT NULL
AND CASE
WHEN ISNUMERIC(USER_3) = 1
THEN Convert(varchar(50), CONVERT(decimal(14,2), USER_3))
END >= 1.3
あなたは 'varchar'に変換しているので、'> = '1.3''を使うべきです – Lamak
ああ、そういう小さな見落としは...ありがとう。申し訳ありませんが、偽の質問のために、私はそれが動作していたはずだった。私は構文エラーを考えていませんでした。 – Azuraith
'USER_3'カラムにあるデータを表示できますか? 'ISNUMERIC'は信頼できません –