给定如下表:

sqlite> CREATE TABLE movies( start_time int );
sqlite> INSERT INTO movies( start_time ) VALUES( 5 );
sqlite> INSERT INTO movies( start_time ) VALUES( 10 );
sqlite> INSERT INTO movies( start_time ) VALUES( 15 );
sqlite> INSERT INTO movies( start_time ) VALUES( 20 );
sqlite> INSERT INTO movies( start_time ) VALUES( 25 );
sqlite> INSERT INTO movies( start_time ) VALUES( 30 );
sqlite> INSERT INTO movies( start_time ) VALUES( 35 );
sqlite>


假设我有两个时间点,开始时间17和结束时间34。我希望查询返回具有以下值的行:15、20、25、30。

给我扔的是15 ...我知道与15关联的文件中包含17,但是我不希望其他少于开始时间的行(例如10和5)。

最佳答案

在我看来,这个问题有点不足(并且没有id的工作是不现实的)。也就是说,对于您的特定示例表,以下工作:

select * from movies
where
  start_time > 17 and start_time < 34
  or start_time in (select max(start_time) from movies
                    where start_time <= 17)

关于sql - 我可以使用纯SQL返回一个范围,该范围包括一个比起始值小的值吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11354387/

10-11 10:46