如何在我的 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'
一定要使用括号,否则 AND
和 OR
的优先级会弄乱查询。
如果您需要 在 2 月和 6 月之间,那么您就不能轻松做到这一点。您最好存储一个 "2018-02-01" in a
DATE` 列,以便您可以进行比较,例如
WHERE month BETWEEN "2018-02-01" AND "2018-06-01"
然后您可以使用日期函数(参见手册)将 SELECT
语句中的“2018-02-01”变成 "February 2018"。
正在关注 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'
一定要使用括号,否则 AND
和 OR
的优先级会弄乱查询。
如果您需要 在 2 月和 6 月之间,那么您就不能轻松做到这一点。您最好存储一个 "2018-02-01" in a
DATE` 列,以便您可以进行比较,例如
WHERE month BETWEEN "2018-02-01" AND "2018-06-01"
然后您可以使用日期函数(参见手册)将 SELECT
语句中的“2018-02-01”变成 "February 2018"。