| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > is null в предложении where |
| Автор: Cashey 12.10.2014, 18:56 |
| Можно ли как то сделать подстановку в предложение WHERE когда (в зависимости от параметра) нужна конструкция field = @param или field is null Конструкция field = @param or field is null не подходит, т.к. в этом случае всегда в выборке будут значения с null, а нужно исключительно или равные параметру или NULL, если @Param =0 Физически задачу решил конструкцие if @param = 0 запрос с WHERE field is null else тот же самый запрос, но с WHERE field = @param но хотелось бы как-то покрасивее, а не писать два идентичных запроса |
| Автор: bas 13.10.2014, 12:34 |
| Case не поможет? |
| Автор: Akina 13.10.2014, 12:40 |
| Всё одно плакали индексы, что с CASE, что с COALESCE... |
| Автор: Zloxa 13.10.2014, 14:03 |
Вобще самый ровный путь это таки "field = @param or field is null and @param is null". Если оптимайзер or не раскрывает, написать or через union all. Встречал случаи, когда оракл раскрыает nvl (аналог isnull), coalsesce, чему был очень приятно удивлен. Хотя is null в оракле это уже не по индексу. |