【问题标题】:Select between range in sql在sql中的范围之间进行选择
【发布时间】:2020-03-26 04:48:12
【问题描述】:

我需要一个建议,同时仅在满足特定范围时选择行。例如,下面是数据集;

id|count|name|status
_________________

1| 10 | xxx | 0

2| 20 | yyy | 0

3| 30 | zzz | 1

4| 40 | qqq | 0

5| 50 | ppp | 0

我只想选择 0 到 1 个预期结果;

id|count|name|status
_________________

1| 10 | xxx | 0

2| 20 | yyy | 0

3| 30 | zzz | 1

SQL : select * from test_db.table where status between 0 and 1

但是在执行上述查询时我得到了全部数据

但我从该表中获得了全部值。请给我任何建议,我坚持这一点。

【问题讨论】:

  • 我不知道hadoop,如果你想在Sqlserver中进行这个查询,那我就做。你想要吗?
  • 感谢您的回复。是的,我只想要 sql 查询
  • 请解释为什么在您的查询结果中不应返回 id=4 和 id=5 的行。它们的状态=0,介于 0 和 1 之间。
  • @leftjoin 我只想要 0 到 1 之间的一批数据,这就是原因。这是已完成或已处理的数据集,其他仍在处理中

标签: sql hadoop hive


【解决方案1】:


试试这个:

SELECT * FROM test_db.table WHERE id <= ( SELECT MIN(id) AS id FROM test_db.table WHERE status = '1' );

几天前我也遇到过类似的情况,我从here改编了LSerni的回答。

【讨论】:

    【解决方案2】:

    试试这个

    SELECT * from sample_table WHERE status>0 AND status<1;
    

    【讨论】:

    • 嘿@T.Maharani 我已经试过了,不,我没有得到预期的结果
    【解决方案3】:

    如果您希望第一个状态 = 0 和第一个状态 = 1 之间的行:

    select * from test_db.table 
    where id between
      (select min(id) from test_db.table where status = 0)
      and 
      (select min(id) from test_db.table where status = 1)
    

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 2018-06-30
      • 2012-01-16
      相关资源
      最近更新 更多