当前位置:  开发笔记 > 编程语言 > 正文

SQL BETWEEN命令不适用于大范围

如何解决《SQLBETWEEN命令不适用于大范围》经验,为你挑选了1个好方法。

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'时,它不会返回任何内容.



1> kostya..:

数据库中的字符串按字母顺序进行比较.字符串'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但是此解决方案效率较低.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有