sql - 在Where子句中添加Case语句

标签 sql select switch-statement case

我需要在 where 子句中添加 case 语句。我希望它根据 TermDate 的值运行下面的任一语句。

Select * 
from myTable
where id = 12345
    AND TermDate CASE  
    WHEN NULL THEN
       AND getdate() BETWEEN StartDate AND DATEADD(dd, 30, StartDate)
    ELSE
    AND GETDATE < TermDate
    END

最佳答案

为什么不直接使用 OR 条件?

SELECT * 
FROM  myTable
WHEN  id = 12345
AND   ((TermDate IS NULL AND 
        getdate() BETWEEN StartDate AND DATEADD(dd, 30, StartDate)) OR
       GETDATE() < TermDate)

关于sql - 在Where子句中添加Case语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21919089/

相关文章:

sql - 将 RDF 转换为 SQL/RDBMS

sql - 只需要从 INNER JOIN 返回一行

sql - 选择具有最大 ID 和特定条件的行

java - 无需切换即可处理 View 的 ID

php - 我应该在 switch 语句中使用 continue 吗?

android - 对 SQLITE 的 T-SQL 查询

c# - Entity Framework 多对多关系包括极慢

MySQL:显示总数

javascript - HTML 选择和文本输入

javascript - 如何使用 js case/switch 函数将图像添加到 html 页面?