我到处搜索并找到有关条件where clauses的问题,但没有关于将and片段有条件地附加到where clause的问题。我不是sql / database的人,我来自另一个IT地区,由于我们的常规数据库人员不见了,因此他今天陷入了“尝试修复该问题”的问题。我具有基本的编程概念和知识,但是sql对我而言只是一种陌生的动物。

我有一个简单的方法:

SELECT abc FROM table WHERE sdate=@somedt


但我需要添加:

AND otherdt=@otherdt


但仅当@otherdt不为null时。如果为null,则我根本不想添加AND部分。我尝试了几种方法来执行此操作,但是它一直给我一个错误。任何帮助表示赞赏。这是我最后一次失败的尝试:

SELECT abc FROM table
WHERE sdate=@somedt
IF @otherdt IS NOT NULL
BEGIN
AND otherdt=@otherdt
END

最佳答案

SELECT abc FROM table
WHERE sdate = @somedt AND (@otherdt IS NULL OR otherdt = @otherdt)

10-04 21:35