Передача IS NOT NULL через sqlparameter - PullRequest
1 голос
/ 27 сентября 2010

У меня есть запрос в SQL Server 2008. Я хочу передать значение из выпадающего списка или IS NOT NULL (поэтому он показывает все значения)Какой лучший способ справиться с этим?Я знаю, что вы не можете передать строку "IS NOT NULL" параметру.Я немного застрял на этом.

ASP.NET 3.5 и SQL Server 2008.

Ответы [ 2 ]

5 голосов
/ 27 сентября 2010

Предполагая, что это хранимая процедура, скажем, ваш параметр называется @Param1, установите для параметра NULL значение IS NOT NULL следующим образом:

SELECT ...
FROM   ...
WHERE  (
           (@Param1 IS NULL AND field1 IS NOT NULL)
           OR (field1 = @Param1)
       )


Предложено GSerg

Тестирование ISNULL(@Param1, field1) = field1 со следующим:

DECLARE  @test1 nvarchar(10) = 'testing',
         @test2 nvarchar(10) = NULL; -- or 'random' or 'testing'

SELECT   1
WHERE    ISNULL(@test2, @test1) = @test1;

Вычисления показаны как 1 для каждого случая.Похоже, это лучшее решение, чем мой первоначальный ответ.

1 голос
/ 27 сентября 2010

Вы можете использовать оператор like:

select * from table1 where name like @param

, установив @param в %, если вы хотите не нулевые значенияНо тогда вам нужно сбежать от %.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...