首页 > 解决方案 > SQL在WHERE子句中添加条件

问题描述

我有一个表,其中有两列是“日期”类型:date1date2.

date1 不能为空,但date2 可以为空

我有以下查询:

SELECT
*
FROM table1
WHERE date1 BETWEEN "2021-01-01" AND "2021-12-31"

如何在 where 子句中添加条件部分,如果date2IS NOT NULL,则应用以下限制/条件AND date2 BETWEEN "2021-01-01" AND "2021-12-31"

标签: mysqlsql

解决方案


你可以使用这个 -

如果 date2 为空,则应用 date2 条件,否则应用 date1 条件。如果你想要别的东西,你可以到处玩。

SELECT
*
FROM table1
WHERE 
case when  date2 is null AND 
date1 BETWEEN "2021-01-01" AND "2021-12-31" then 1
when date2 is not null AND 
date2 BETWEEN "2021-01-01" AND "2021-12-31" then 1
else 0
end =1 

推荐阅读