这是我的sql
SELECT * FROM Answers
WHERE QuesID = 1 AND OptionID IN (2,5) AND CONVERT(float, ISNULL(AnswerValue, 0)) < 300
问题是 OptionID = 6 中有旧数据是字符串。当我运行上述查询时,它给了我
将数据类型 varchar 转换为浮点数时出错。
我确认 QuesID=1 和 OptionId IN (2,5) 中的所有数据都是浮点数据。似乎 SQL 是先做这个 sql 的数学部分,有没有让它在运行 AnswerValue 比较之前检查 OptionID?还是我完全不在基地?