SQL BETWEEN命令不适用于大范围

萨德·库雷希(Saad Qureshi)

仅当为列提供较小范围时,SQL命令BETWEEN才有效。这是我的意思:

我的代码:

import AzureSQLHandler as sql

database_layer = sql.AzureSQLHandler()
RESULTS_TABLE_NAME = "aero2.ResultDataTable"
where_string = " smog BETWEEN '4' AND '9'"

print database_layer.select_data(RESULTS_TABLE_NAME,  "*", where_string)

对应于SQL命令:

SELECT *
FROM aero2.ResultDataTable
BETWEEN '4.0' AND '9.0'

select_data返回包含所有这些行的二维数组。

我在此处引用的列已经保存了等于5.0的所有值。

这很不错!

但是,当我将范围增加到“ 4.0”和“ 200.0”时,它不会返回任何内容。

科斯蒂亚

数据库中的字符串按字母顺序进行比较。字符串'4.0'大于字符串,'200.0'因为字符4在character之后2如果需要支持这种查询,则应在数据库中使用数字类型。确保该smog列具有数字类型(例如DOUBLE)并BETWEEN 4.0 AND 200.0在查询中使用

如果您无法更改架构,则可以使用CASTcast(smog as DOUBLE) BETWEEN 4.0 and 200.0,但是此解决方案的效率较低。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章