2017-01-26 3 views
0

Я пытаюсь сделать оператор select, где, если локальная битовая переменная равна 0, тогда должно быть условие, когда столбец имеет значение null. Я не могу понять, как сделать это, не делая column1 = NULL, который не дает правильный результат:установка столбца на нуль в случае оператора

DECLARE @s bit = 0 
SELECT pkID FROM table1 WHERE column1 = CASE WHEN @s = 0 THEN NULL ELSE column1 END 

Любые идеи о том, как сделать эту работу?

+2

Вы говорите * установка * столбец в 'NULL', но ваш запрос является' SELECT' заявление. Просьба уточнить ваши намерения с помощью некоторых данных образца и желаемых результатов. – Siyual

ответ

1

Вы можете сделать это, добавив оба условия в пункте WHERE:

Declare @s Bit = 0; 
Select pkID 
From table1 
Where (@S = 0 And Column1 Is Null) 
Or  (@S <> 0)