Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T-SQL小于百分比-即使已排除,仍返回100%?_Sql_Sql Server_Tsql - Fatal编程技术网

T-SQL小于百分比-即使已排除,仍返回100%?

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,“%”,“”),因此%%字符在字段中,这是一种字符类

我需要找到x列中的单元格(百分比)小于或等于80%的所有行

所以我有

挑选 ... 从…起 ... ColX_pc 80%,但为什么要将数字存储为字符串?当您这样做时,您将得到字符串比较。如果要作为数字进行比较,请转换为数字:

where try_convert(numeric(38, 6), replace(ColX_pc, '%', '')) <= 80

其中try_convert(数字(38,6),replace(ColX_pc,“%”,“”),因此
%%
字符在字段中,这是一种字符类型?如果是这样的话,
'100%'<'80'
是真的,因为您是在比较字符串而不是整数……”添加
和Colx'100.00%
“并不能提供解决方案。这仅仅意味着你已经抑制了你所注意到的一个症状。字符串比较不能代替数字比较。@MarkAdelsberger是,正确。请参阅下面的答案,其中概述了此问题的有效解决方案。是的,这是正确的。我在发布答案后不久就发现了这一点,并在上面进行了编辑。但我没有注意到9%——这一点很好。我会在几分钟后把这个标记为答案。