0

我有两个文本框,我可以从用户那里获取开始和结束日期。这里有3个条件。

  • 用户可以填写 2 个文本框
  • 用户只能填写开始日期(结束日期为空)。
  • 用户只能填写结束日期(开始日期为空)。

最后,我的查询应该是什么?

变量:start_dateend_date

询问:SELECT * FROM kkmail WHERE MAIL_DATE ....

4

2 回答 2

3
SELECT * FROM kkmail 
WHERE (MAIL_DATE >= @start_date OR @start_date is null)
and (MAIL_DATE <= @end_date OR @end_date is null)
于 2013-11-05T08:50:36.057 回答
1

Oracle 具有LNNVL功能,可以简洁地编写这些类型的查询,虽然有点混乱。

SELECT * 
  FROM kkmail 
 WHERE lnnvl(mail_date < @start_date)
   AND lnnvl(mail_date > @end_date);

Demo

于 2013-11-05T09:11:13.713 回答