Случай, когда переменная THIN IN - PullRequest
0 голосов
/ 17 января 2020

Можно ли добиться чего-то подобного этому

WHERE t.userid in 
    CASE @UserID WHEN 0 THEN (10288,10364,10404,10445,10469,10516,10585) 
    ELSE  t.userid in (1) END

Ответы [ 2 ]

3 голосов
/ 17 января 2020

Не с case. Просто используйте логические выражения:

WHERE (@UserId = 0 AND
       t.userid IN (10288, 10364, 10404, 10445, 10469, 10516, 10585)
      ) OR
      (@UserId <> 0 AND t.userid = 1) 

Примечание. Если @UserId может быть NULL, вам также необходимо это учитывать.

0 голосов
/ 17 января 2020

Вы можете попробовать этот способ

WHERE (@UserId = 0 and t.userid IN (10288,10364,10404,10445,10469,10516,10585)) OR (t.userid = 1)
...