Нулевые и не нулевые значения в одном и том же параметре - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть это:

Decalre @param int
select * from table where param = @param

иногда люди хотели бы выбрать записи, в которых param равен нулю.

Итак, как-то так:

if @param is null
begin
select * from table where param is null
end
else select * from table where param =@param

Возможно ли включить это в один запрос?

Ответы [ 3 ]

2 голосов
/ 10 ноября 2011

Должно быть в состоянии скрыть это в предложении where:

select * from table where (param =@param) or (param is null and @param is null) 
1 голос
/ 10 ноября 2011

будет использовать объединение для замены нулевого значения, будет действовать лучше на производительность, чем or я думаю:

SELECT * 
FROM table 
WHERE Coalesce(@param, 1) = Coalesce(param, 1)
0 голосов
/ 10 ноября 2011
select 
  * 
from table 
where (@param is null AND param is null) OR (@param is not null AND param = @param)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...