【发布时间】:2017-03-13 14:16:34
【问题描述】:
我需要找到 x 列中的单元格(百分比)小于或等于 80% 的所有行。
所以我有
选择 ... 从 ... 其中 ColX_pc
奇怪的是,这会返回所有小于或等于 80% 的值,并排除所有为 null 或 >80% 但
更新 - 我现在意识到是什么原因造成的 - 该列是 varchar,因此 100% 被视为“小于”80%。在下面的答案中确定了最佳解决方案。
【问题讨论】:
-
那么
%字符在字段中,是字符类型吗?如果是这样,'100%' < '80'是真的,因为你比较的是字符串而不是整数 ... -
“添加
and Colx <> '100.00%'” 并没有提供解决方案。这仅仅意味着你已经抑制了你注意到的一种症状。字符串比较不能代替数值比较。 -
@MarkAdelsberger 是的,正确的。请参阅下面的答案,其中概述了此问题的有效解决方案。
标签: sql sql-server tsql