Как проверить значение IS NULL [or] = @param
(где @param является пустым),
Исключая:
Select column1 from Table1
where column2 IS NULL => works fine
Если я хочу заменить сравнение значения (ЯВЛЯЕТСЯ ПУСТЫМ) с @param. Как это может быть сделано
Select column1 from Table1
where column2 = @param => this works fine until @param got some value in it and if is null never finds a record.
Как это может достигнуть?
select column1 from Table1
where (@param is null and column2 is null)
or (column2 = @param)
{{1} } Для этого не существует универсального подхода к запросам, это может повлиять на производительность. Если вы хотите выйти за пределы , просто чтобы запрос возвращал правильный ответ, независимо от того, насколько он медленный, посмотрите эту статью о условиях динамического поиска в T-SQL, написанную Эрландом Соммарскогом
здесь ссылка на часть на x = @x OR @x IS NULL