sql - TSQL 如何在 CASE 语句中进行过滤?
问题描述
我试图弄清楚如何按日期过滤/仅在 @getdisabledoptions = 0 时获取所有没有日期的选项,否则如果 @getdisabledoptions = 1 我想获取所有选项。
WHERE AffiliationID = @AffiliationID
AND
case
这是我想按禁用日期过滤或在@getdisabledoptions = null 时获取空值的情况
when @GetDisabledOptions = 0 then DisabledDate > GETDATE() or DisabledDate = IS NULL
否则在这里我只想提取 AffiliationId = @affiliationId 的所有内容,而不是按日期过滤
else end
我在这里做错了什么?我试图查找其他答案,但我只是措辞不正确。
解决方案
根据您描述的逻辑,您可以将WHERE
表达式简化为:
WHERE AffiliationID = @AffiliationID
AND (@GetDisabledOptions = 1 or DisabledDate > GETDATE() or DisabledDate IS NULL)
推荐阅读
- javascript - react native:将警报更改为模态的方法
- reactjs - react css modules 导致快照测试失败
- postgresql - 用于将查询结果导出到文件的 postgres \copy 命令出现问题
- microsoft-graph-api - Graph API:DriveItem 的上传内容为 AzureChina 引发 501 not_implemented 错误
- sql - 遗漏连接返回重复记录
- vue.js - 无需模板即可动态设置 CSS 类
- javascript - javascript/打字稿 | 类验证器 | 自定义验证装饰器 | 覆盖 `validator` 方法中的 `validationOptions`
- c# - 将 SQL 语句重写为 LINQ 查询会导致运行时错误
- c++ - 在不改变顺序的情况下完成所有任务所需的最短时间
- python - 是否可以通过 Cython 通过引用将值从 Python 传递到 C++?