Я выбираю записи из столбца с именем [tagged], и по умолчанию он равен нулю.
Моя проблема в том, что переменная @tagged
равна NULL
, тогда я хочу выбрать оба значения 0,1. Это заставляет меня думать, что я должен делать IF/ELSE
, но мои попытки терпят неудачу.IF/Else/CASE Statement в предложениях WHERE
--- Простой пример:
declare @tagged int = NULL
SELECT *
FROM [TableName]
WHERE datecreated > '2016-01-01'
AND tagged = @tagged
Многие АБД рекомендовать пункт СЛУЧАЙ. Но мне нужна помощь, зная, где его добавить.
Добавляю ли я его в запрос?
Моя слабая попытка была такова:
SELECT *
FROM [TableName]
WHERE datecreated > '2016-01-01'
AND (
CASE @tagged
WHEN 0 THEN (tagged = 0)
WHEN 1 THEN (tagged = 1)
ELSE (tagged IN(0,1)
END
)
Символ 'CASE' может быть использован в' JOIN', как показано в [ здесь] (http://stackoverflow.com/a/10260297/92546). Предложение WHERE может использовать один и тот же шаблон. – HABO