我有一个列中包含许多不同类型的数字,当我在其上执行少于函数时,它似乎无法正常工作。
0
0.000000
-0.001000
0.738000
1.000000
10.000000
10.005000
10.027000
...
99.947000
99.962000
99.988000
990.307000
991.190000
9918.058000
996
997
这是数字的样本吗?
答案 0 :(得分:8)
字符串比较与数字比较不同。
如果您想比较这些数字,我建议您将它们转换为decimal
或float
:
where try_convert(float, col) < 10
当然,我应该提到不建议在字符字段中存储数字。如果可能,您应该使用本机类型。
编辑:
在SQL Server 2012之前的版本中,您应该使用case
:
where (case when isnumeric(col) = 1 then convert(float, col)
end) < 10