我有一个软件应用程序,如果在输入参数特定字符串中找到,我需要根据特定条件查询数据库.但是,如果找不到特定的字符串,那么我不想包含限制条件.
不太清楚如何处理这个但我已经有了一些代码.我似乎无法完成它.我的where子句如下所示:
WHERE p.country = @country AND
p.[state] = @state AND
p.last_update BETWEEN @from AND @to AND
f.facility_id = @facid AND
p.sex = @gender AND
p.disease1 = CASE WHEN @inpDisease LIKE '%AIDS%' THEN 1 ELSE --?? Here is where it gets tricky
Run Code Online (Sandbox Code Playgroud)
如果在@inpDisease字符串中找不到AIDS,则我不需要使用p.disease1条件限制查询.Disease1是数据类型位,因此该列中只存在1或0.我如何在ELSE中指定0和1,或者让它一起忽略Disease1?我还有15个BIT字段,如果它们存在于inpDisease中则需要检查,否则如果它们不存在则被忽略.
任何想法,最好的方法是什么?我不想最终使用条件逻辑大量的SELECT来省略此处的1个字段或查询中的1个字段.
我似乎无法想出一个好主意来解决这个问题,所以任何帮助都表示赞赏!谢谢
如果您不想使用该标准,请将列与其自身值进行比较:
p.disease1 = CASE WHEN @inpDisease LIKE '%AIDS%' THEN 1 ELSE p.disease1 END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |