0
我有6个输入字段,其中2个是强制性的。其他4个字段是可选的,并且在表中不是空值。我必须将这6个值传递给游标查询。代码1,代码2,代码3在表中是相同的字段名称'X'。 如何将这些条件包含在where子句中?如果给出code1而其他则为null,则过滤条件应该包括X = code1。同样,如果给出code1和code2,则X = code1,code2。如果什么都没有给出,那么X就是所有的值,而不是从查询中消除的X过滤条件。如何在where语句中使用Case语句?
select p,q,r from a,b
where a.f1=b.f2
and a.X=code1 <<if only code1 is passed>>
and a.X in (code1,code2) <<if both code1 and code2 are passed>>
or
select p,q,r from a,b
where a.f1=b.f2
<<if no value is passed>>
请帮忙!
在'WHERE'子句中使用MySQL'CASE'没有什么特别的好处,它在其他语言中的工作方式并不相同。 – Havenard
添加一些示例表格数据和预期结果(以及格式化文本)。同时标记您正在使用的dbms。 – jarlh