T-SQL小于百分比-即使已排除,仍返回100%?
我需要找到x列中的单元格(百分比)小于或等于80%的所有行 所以我有 挑选 ... 从…起 ... ColX_pc 80%,但为什么要将数字存储为字符串?当您这样做时,您将得到字符串比较。如果要作为数字进行比较,请转换为数字:T-SQL小于百分比-即使已排除,仍返回100%?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要找到x列中的单元格(百分比)小于或等于80%的所有行 所以我有 挑选 ... 从…起 ... ColX_pc 80%,但为什么要将数字存储为字符串?当您这样做时,您将得到字符串比较。如果要作为数字进行比较,请转换为数字: where try_convert(numeric(38, 6), replace(ColX_pc, '%', '')) <= 80 其中try_convert(数字(38,6),replace(ColX_pc,“%”,“”),因此%%字符在字段中,这是一种字符类
where try_convert(numeric(38, 6), replace(ColX_pc, '%', '')) <= 80
其中try_convert(数字(38,6),replace(ColX_pc,“%”,“”),因此%%
字符在字段中,这是一种字符类型?如果是这样的话,'100%'<'80'
是真的,因为您是在比较字符串而不是整数……”添加和Colx'100.00%
“并不能提供解决方案。这仅仅意味着你已经抑制了你所注意到的一个症状。字符串比较不能代替数字比较。@MarkAdelsberger是,正确。请参阅下面的答案,其中概述了此问题的有效解决方案。是的,这是正确的。我在发布答案后不久就发现了这一点,并在上面进行了编辑。但我没有注意到9%——这一点很好。我会在几分钟后把这个标记为答案。