尝试更新where子句以仅应用于某个值

hwazgwia  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(247)

我的数据库中有一个存储过程。它是一段动态代码,可以运行多个不同的参数。
假设我有一个参数 @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 子句:(val2 in('h1','h2')to@param=17

3b6akqbq

3b6akqbq1#

你似乎想要:

where (@param = 17 and val2 in ('h1', 'h2')) or
      (@param <> 17)

相关问题