我有一种情况,我需要在where子句中使用的列根据变量的值而变化。
例如,如果@ID与Table1中的TableID匹配,那么我将使用下面的代码
WHERE
Table1.TableID = CASE WHEN @ID= -1 THEN Table1.TableID ELSE @ID END
但是,如果@ID与Table2的TableID匹配,那么我需要使用
WHERE
Table2.TableID = CASE WHEN @ID= -1 THEN Table2.TableID ELSE @ID END
我将如何完成这项工作?OR子句在这种情况下会起作用吗?
编辑:尝试提供更多细节以使其更清晰。样本数据
表格1
TableID
1
2
3
4
表2
TableID
10
11
12
13
如果@ID = -1,我想查看两个表中的所有行。
如果@ID = 1,则仅显示表1中的第一行
如果@ID = 10,则仅显示表2中的最后一行...等等。
你不能只是做这样的事情。
where (@ID = Table1.TableID OR @ID = Table2.TableID)
如果您要查看@ID是否与这些tableID中的任何一个匹配,则这似乎是一种更简单的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句