我有一个软件应用程序,我需要根据特定条件查询数据库,如果在输入参数中找到特定的字符串。但是,如果没有找到特定的字符串,那么我不想包含限制条件。复杂的SQL WHERE子句问题
不太清楚如何解决这个问题,但我已经有一些代码。我似乎无法完成它。我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
如果@inpDisease字符串未发现艾滋病然后我不需要与p.disease1条件限制查询。 Disease1是数据类型位,因此该列中只有1或0。我怎么能在ELSE中同时指定0和1,或者让它一起忽略Disease1?我还有另外15个BIT字段,如果它们存在于inpDisease中,则必须进行检查,如果它们不存在,则将其忽略。
任何想法什么是最好的方式来完成这可能是?我不想结束大量使用条件逻辑的SELECT,只是为了省略查询中的1个字段或1个字段。
我似乎无法想出一个好主意来解决这个问题,所以任何帮助表示赞赏! 感谢
数据库人员可能更有可能称之为“有条件的地方”。仅供参考。 – tnktnk 2012-01-04 21:05:05