SQL SERVER - СЛУЧАЙ, ГДЕ (ТОГДА НЕДЕЙСТВИТЕЛЬНО, НЕ ЕЩЕ НУЛЬ) - PullRequest
0 голосов
/ 11 сентября 2018

Я видел эту ссылку, чтобы найти решение своей проблемы:

CASE in WHERE, SQL Server

Однако в моем случае мне нужно оценить этокогда параметр имеет определенное значение, он оценивает поле, когда он равен нулю или не равен , например:

WHERE (CASE @parameter WHEN 1 THEN a.fieldOne IS NULL ELSE a.fieldOne IS NOT NULL END)

Но это не работает для меня ...

РЕДАКТИРОВАТЬ 1

Например, когда @parameter = 1

SELECT * FROM
FROM exampleTable as s
WHERE (s.fieldOne IS NULL)

И когда @parameter = 0

SELECT * FROM
FROM exampleTable as s
WHERE (s.fieldOne IS NOT NULL)

1 Ответ

0 голосов
/ 11 сентября 2018

Вы не можете использовать выражение case для возврата частей запроса, как вы пытались, только значения.

Однако вы могли бы подражать его поведению с помощью логических операций:

WHERE (@parameter =  1 AND a.fieldOne IS NULL) OR
      (@parameter <> 1 AND a.fieldOne IS NOT NULL)
...