sql - 如何在 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
解决方案
您没有说明您的 DBMS,但使用标准 SQL,您可以执行以下操作
select *
from trans_mont
where (year, month) between (2017,11) and (2018,2);
运算符包含边缘,这between
就是为什么下端的月份是 11(不是 10)而上端的月份是 2
推荐阅读
- xml - 使用 XSLT 转义内部子节点时,根 xml 命名空间被错误映射
- java - 遍历嵌套的 ArrayList 并从嵌套的 ArrayList 中的值创建 2 个新的 ArrayList?
- mysql - 将数据从数量转换为百分比sql查询
- c# - 如何将 IEnumerable 类型转换为 List 类型?
- laravel - 为什么 Laravel 文档中不存在 View::make() ?
- python - 如何在一列类似字典的字符串中获取值?
- nginx - nginx - 用 php 文件重写 js 文件
- xcode - Xcode 调试视图层次结构永远加载并且不会启动
- javascript - 异步按钮处理函数中的 setState 值在渲染中没有变空
- django - 强制设置 X-Frame-Options Django