Я создал веб-форму поиска с использованием C#, asp.net. У меня есть параметры поиска, такие как имя клиента, диапазон дат (от & до). Я написал запрос для поиска по указанному выше параметру. Его работа прекрасна, но когда я ищу только по имени клиента не по дате, тогда он не показывает записи. Пожалуйста, дайте мне решение, чтобы дать условие для пустого диапазона дат, как '%' оператор в 'LIKE' состояние.Поиск записей по диапазону дат и если диапазон дат пуст с использованием SQL
ответ
Пусть говорят, вы передаете следующие 3 параметра СП
@Input VARCHAR(100)
@FromDate DATETIME
@ToDate DATETIME
Если вы хотите искать только на основе имени клиента в этом случае проход NULL значение для FromDate и ToDate и напишите ваш запрос следующим образом.
SELECT COL1,COL2,COL3....
FROM TABLET1 T1
WHERE T1.Name LIKE '%' + @Input + '%'
AND (T1.FROMDATE >= @FromDate OR @FromDate IS NULL)
AND (T1.TODATE <= @ToDate OR @ToDate IS NULL)
Случай 1: FromDate не указано в пользовательском интерфейсе так @FromDate будет NULL и условие И (T1.FROMDATE >= @FromDate OR **@FromDate IS NULL**)
возвращает истину.
Случай 2: ToDate не указано в пользовательском интерфейсе так @ToDate будет NULL и состояние ND (T1.TODATE <= @ToDate OR @ToDate IS NULL)
возвращает истину.
Случай 3: И С датой и до настоящего времени, не указанное в этом случае как вышеуказанных условиях (случай 1 и случай 2) будет справедливо и запрос будет возвращать все совпадающие записи на основе T1.Name LIKE '%' + @Input + '%'
, если я не ввел диапазон дат для поиска и только в том случае, если я ищу по имени, тогда он не показывает никакой записи (записи, имеющие дату и дату) , этот запрос не работает – Ishita
Я думаю, что вы не проверили правильное предложение where. Он обязательно вернет соответствующие записи. Я обновил свой ответ, пожалуйста, проверьте. – PSK
Это нормально работает без SP, я должен предоставить условия в SP, но я получаю данные из нескольких таблиц, поэтому как я могу поместить их в одну хранимую процедуру (этот SP принадлежит только одной таблице) – Ishita
- 1. Поиск записи по диапазону дат
- 2. Диапазон дат Поиск
- 3. SQL: рекурсивный CTE по сгруппированному диапазону дат
- 4. Цикл по диапазону дат
- 5. SQL группы запросов по диапазону дат
- 6. Группировка по разнице/диапазону дат
- 7. Firebase запрос по диапазону дат
- 8. XQuery - Фильтрация по диапазону дат
- 9. sql 2008 Производительность по диапазону дат (BETWEEN)
- 10. SQL Server, ключ назначить по диапазону дат
- 11. Объединение SQL Server по диапазону дат
- 12. SQL группы по относительному диапазону дат
- 13. группировка по диапазону дат в T-SQL
- 14. SQL Диапазон дат Запрашивает
- 15. Rails - Фильтрация по диапазону дат
- 16. Выходных данных по диапазону дат
- 17. Sql Server Диапазон дат
- 18. MAX Диапазон дат в SQL
- 19. SQL-диапазон дат с использованием динамических параметров
- 20. R Подменит по диапазону дат
- 21. SQL Сплит диапазон дат
- 22. колонка затенение по диапазону дат
- 23. Фильтрация данных по диапазону дат
- 24. SQL Server Диапазон дат
- 25. SQL диапазон дат запроса
- 26. Диапазон дат Фильтр-SQL -
- 27. Диапазон дат Sql с количеством
- 28. SQL HAVING BETWEEN диапазон дат
- 29. Диапазон дат с использованием частоты и периодов
- 30. Диапазон дат SQL Query
разместите свой запрос sql. Вы используете динамический sql? –
выберите custname, fromdate, todate from custleavetable, где custname как «%» + txtcustname.text + «%» и fromdate между «+ txtfrom.text +» «AND» + txtto.text + «» и todate между ' + txtfrom.text + "'AND'" + txtto.text + "' – Ishita