我正在使用 ColdFusion 8 和 SQL Server 2008 R2。
我正在尝试查询一列值以获取值在一个范围内的行。该列应该是数字,但不是。它被设置为 varchar(由其他人)。有 100,000 多行数据。这是数据的假样本:
ID COLUMN
1 1
2 1.2
3 0.9
4 5
5 -6
我的查询如下所示:
select column
from table
where column between 1 and 2
此查询不会运行,因为 where 语句的列是 varchar,并且出现转换错误,因此我必须将 where 语句更改为:
where column between '1' and '2'
现在,当我运行这样的查询时,它会运行,但我没有得到结果。但我知道我应该看到结果,因为我知道列字段中的许多值都在我查询的范围内。
我想知道是否由于该字段是 varchar 而不是数字而看不到任何结果。这可能会弄乱我的结果吗?
此外,我们有 100,000 多条要搜索的记录,使用 varchar 字段而不是数字字段会对性能造成很大影响吗?