У меня есть страница поиска ASP.net, где пользователь может ввести один или несколько критериев поиска.Страница вызывает хранимую процедуру для запроса базы данных MS SQL Server 2008.
Часть критериев поиска - это одна дата или диапазон дат.Если пользователь указывает дату1, мы ищем только одну дату.Если пользователь указывает дату1 и дату2, мы выполняем поиск в диапазоне дат.
Моя проблема заключается в кодировании этой логики в хранимой процедуре.
@Date1 datetime
@Date2 datetime
..other search params...
Итак, существует три условия:
- И @ Date1, и @ Date2 имеют значение NULL (пользователь не выполняет поиск по датам)
- @ Date1 не имеет значение NULL, а @ Date2 имеет значение NULL (пользователь выполняет поиск по одной дате)
- @ Date1 не равно нулю, а @ Date2 не равно нулю (пользователь ищет диапазон дат)
Я не могу понять, как структурировать предложение WHERE для обработки каждого изтри возможных условия.
Я знаком с ISNULL()
и COALESCE()
Любые советы или предложения приветствуются.