根据参数更改WHERE子句



我要做的是基于一个参数值,更改WHERE子句。我尝试过使用CASE表达式,但意识到我试图将其用于非预期目的。这是我的尝试:

WHERE CASE WHEN @active = 1 THEN vp.date_installed IS NOT NULL AND vp.date_removed IS NULL 
WHEN @active = 0 THEN vp.date_removed IS NOT NULL 
END

当然,这里的问题是试图使用THEN来执行简单的值检索之外的操作。那么我该怎么做呢?

我建议使用布尔逻辑:

WHERE 
(@active = 1 AND vp.date_installed IS NOT NULL AND vp.date_removed IS NULL)
OR (@active = 0 AND vp.date_removed IS NOT NULL)

相关内容

  • 没有找到相关文章

最新更新