Попытка обновить предложение where, чтобы оно применялось только к определенному значению - PullRequest
0 голосов
/ 27 мая 2020

У меня в базе данных есть хранимая процедура. Это динамический c фрагмент кода, который выполняется для нескольких разных параметров.

Допустим, у меня есть параметр с именем @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') к @ Param = 17

1 Ответ

1 голос
/ 27 мая 2020

Кажется, вы хотите:

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