【问题标题】:SQLite3 select field by numeric rangeSQLite3按数字范围选择字段
【发布时间】:2011-11-29 15:58:07
【问题描述】:

在 SQLite3 中,假设我有这个简单的表

rowid     value1    value2
(int)     (float)   (float)  
1         15.3      20.2
2         17.8      30.5
3         15.8      25.3
4         16.1      48.0

如何选择值所在的行:
15.0 >= value1

进一步 我如何改进将第一个标准添加到 ALSO 20.0 >= value2

非常感谢您的帮助

【问题讨论】:

    标签: iphone sqlite floating-point range


    【解决方案1】:

    我相信你的第一个逻辑是不正确的,因为如果 value1 小于 15,它也会小于 16.5,但只需更改运算符:

    Select * from SimpleTable where value1

    也许你的意思是:

    Select * from SimpleTable where value1 >= 15.0 and value1

    再次(考虑调整后的逻辑):

    Select * from SimpleTable where value1 >= 15.0 and value1 = 20.0 and value2

    如果您希望对结果进行排序,您可能需要添加“order by”子句。

    【讨论】:

    • 哦!但我已经为另一个字段使用了 where 子句(例如,TYPE='w')。现在我的子句是:SELECT * from EN where TYPE='W';我需要知道我可以进一步过滤其余的结果。我可以在 sqlite3 中使用两个或多个 Where 语句吗?
    • 您可以使用 AND 进一步添加 where 子句,就像我在上面所做的那样。
    • Select * from EN where TYPE='W' and value1 >= 15.0 and value1
    • Orwen,我在示例中使用的逻辑是正确的,只是在过去几天的编码中有点精疲力尽
    【解决方案2】:

    只需执行下面的SQL命令:

    select id, value1, value2 FROM <table name> WHERE value1 >= 15.0 AND  value1 <= 16.5 AND value2 >= 20.0 AND value2 <= 37.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-21
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多