如何在我的 SQL 中检查同一字段的多个条件?

How to check multiple condition for same field in my SQL?

正在关注 table:

ECNO    BRANCH   MONTH  ISDELETED
1   B1  February 2018   n
2   B3  February 2018   n
3   B3  March    2018   n
4   B1  March    2018   n
5   B2  January  2018   n
6   B3  January  2018   n

这里需要select根据分支和开始日期和结束日期

案例一: 如果分支是 B3,则开始日期和结束日期相等 根据分支选择 selected.

select * from HR_BULKBILL_DETAILS where BRANCH='B3' AND MONTH='March 2018'

这个查询工作正常

案例二: 如果开始日期(假设 2018 年 1 月)和结束日期(假设 2018 年 2 月)和分支 b3。如何在 select 查询

中检查此条件

如何检查一个字段的两个条件?

注意:(在数据库中我们只有 Month:this 列保持月份-年份示例:Januray 2018) 我正在使用我的 sql.

我们已经尝试过:

select * from HR_BULKBILL_DETAILS where  MONTH='February 2018' AND MONTH='March 2018' AND BRANCH='CBE3'

如有错字请见谅

我的预期输出是:

ECNO 分支月份已删除 2 B3 2018 年 2 月 n 3 B3 2018 年 3 月 n

我的输入是用户给出开始日期和结束日期以及分支

开始日期和结束日期类似于 2018 年 3 月

谢谢 AKZhang, 最后我通过使用 "between"

得到了结果

查询如下:

select * 来自 HR_BULKBILL_DETAILS 其中 MONTH Between 'February 2018' AND 'March 2018' and BRANCH='B3'

如果您想获取 2 月或 3 月的行,请这样说:

select  *
    from  HR_BULKBILL_DETAILS
    where  ( MONTH='February 2018' OR  MONTH='March 2018' )
      AND  BRANCH='CBE3'

一定要使用括号,否则 ANDOR 的优先级会弄乱查询。

如果您需要 2 月和 6 月之间,那么您就不能轻松做到这一点。您最好存储一个 "2018-02-01" in aDATE` 列,以便您可以进行比较,例如

WHERE month BETWEEN "2018-02-01" AND "2018-06-01"

然后您可以使用日期函数(参见手册)将 SELECT 语句中的“2018-02-01”变成 "February 2018"。