Evi*_*mes 4 sql coldfusion sql-server-2008 coldfusion-8
我正在使用ColdFusion 8和SQL Server 2008 R2.
我正在尝试查询一列值以获取值在一定范围内的行.该列应该是数字,但事实并非如此.它被设置为varchar(由其他人).有超过100,000行的数据.这是数据的FAKE样本:
ID COLUMN
1 1
2 1.2
3 0.9
4 5
5 -6
Run Code Online (Sandbox Code Playgroud)
我的查询如下所示:
select column
from table
where column between 1 and 2
Run Code Online (Sandbox Code Playgroud)
此查询将不会运行,因为where语句的列是varchar,并且我得到转换错误,所以我必须将where语句更改为:
where column between '1' and '2'
Run Code Online (Sandbox Code Playgroud)
现在,当我运行这样的查询时,它会运行,但我没有得到结果.但我知道我应该看到结果,因为我知道列字段中的许多值都在我查询的范围内.
我想知道我是否看到没有结果,因为该字段是varchar而不是数字.可能会弄乱我的结果吗?
此外,我们正在搜索100,000多条记录,使用varchar字段而不是数字字段会有很大的性能影响吗?
例如,您需要以结果WHERE ISNUMERIC(column) = 1 AND CAST(column AS decimal(10,5)) BETWEEN 1 AND 2为例.
| 归档时间: |
|
| 查看次数: |
12763 次 |
| 最近记录: |