我的数据库中有一个存储过程。它是一段动态代码,针对多个不同的参数运行。
假设我有一个名为@Param
的参数被传递:17(此参数对于不同的进程会有所不同(。
在我的查询中,我尝试使用此参数来更新 WHERE 子句,如下所示:
SELECT val1, val2
FROM tbl1
WHERE 1 = 1
AND ((val2 IN ('h1', 'h2') AND @Param IN (17)) OR @Param NOT IN (17))
这样的代码有意义吗?我试图只应用这个WHERE
子句:(('h1','h2'(中的val2到@Param=17
你似乎想要:
where (@param = 17 and val2 in ('h1', 'h2')) or
(@param <> 17)