首页 > 解决方案 > 如何在 SQL 中返回两个值之间的记录

问题描述

朋友们,我知道我的问题是非常基本的,但我坚持下去,因为我对 SQL 很天真,所以,为此道歉。我有名为 TRANS_MONT 的表并存储如下数据

Year    month   amount  
2017     10     500  
2017     11     700  
2017     12     400  
2018     1      600  
2018     2      450  
2018     3      600  

我有兴趣返回 2017 年月值大于 10 的所有交易以及 2018 年月值小于 3 的所有记录我在下面的查询中尝试过,但它不起作用

Select * from TRANS_MONT where year in (2017, 2018) and month between 10 and 3

标签: sqloracle

解决方案


您没有说明您的 DBMS,但使用标准 SQL,您可以执行以下操作

select *
from trans_mont
where (year, month) between (2017,11) and (2018,2);

运算符包含边缘,这between就是为什么下端的月份是 11(不是 10)而上端的月份是 2

在线示例:https ://rextester.com/VZPQ64850


推荐阅读