只有当我为列指定了一个小范围时,SQL命令才能工作。 我的意思是:
我的代码:
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'
选择“数据”返回一个包含所有这些行的二维数组。你知道吗
我在这里引用的列已经保存了所有等于5.0的值。你知道吗
这个很好用!你知道吗
但是,当我将范围增加到,比如说,“4.0”和“200.0”时,它不会返回任何结果。你知道吗
数据库中的字符串按字母顺序进行比较。字符串
'4.0'
大于字符串'200.0'
,因为字符4
位于字符2
之后。如果需要支持此类查询,则应在数据库中使用数字类型。确保smog
列具有数字类型(例如DOUBLE),并在查询中使用BETWEEN 4.0 AND 200.0
。你知道吗如果不能更改模式,可以使用
CAST
:cast(smog as DOUBLE) BETWEEN 4.0 and 200.0
,但是此解决方案效率较低。你知道吗相关问题 更多 >
编程相关推荐