SQL Query:Sql запрос, который фильтрует по одному или нескольким полям
Select *
from tabEmployee
where city='Delhi' OR locality='' OR pincode='' OR salary Between '' AND '' OR designation=''
Я совершенно новым для SQL Server.
Я хочу написать запрос sql, где город является обязательным, а другие поля могут или не могут быть предоставлены пользователем.
Я хочу сказать, входит ли один пользователь в местность = «Кирти Нагар».
Фильтр должен работать в соответствии с городом = 'Дели' и местностью = 'Кирти Нагар'.
В других случаях любой пользователь может ввести только диапазон зарплаты.
Затем фильтр должен работать по городу = «Дели» и заработной платы между 5000 и 10000.
Если пользователь не вводит никаких полей, то фильтр должен работать в соответствии с города = «Дели» только.
Как я могу это сделать?
Привет, Дони, Спасибо за ответ. pincode_parameter = 110034 SELECT * FROM dbo.tabEmployee WHERE город = 'Дели' и пин-код = ISNULL (pincode_parameter, пин-код) result- Возвращает две строки, которые имеют города = 'Дели' и Pincode = 110034.(OK) Но, как и я: pincode_parameter = NULL SELECT * FROM dbo.dbo.tabEmployee WHERE город = 'Дели' и пин-код = ISNULL (pincode_parameter, пин-код) result- Возвращает три строки, которые имеют city = 'Delhi' и pincode = 110034.Но он оставляет те строки, у которых есть pincode = NULL. Если он должен вернуть весь pincode (включая NULL). – user2791156
@ user2791156 Теперь добавили новое условие: ИЛИ пинкод IS NULL –
Привет Доний, pincode_parameter = 110034 SELECT * FROM dbo.tabEmployee WHERE город = 'Дели' AND (пин-код = (ISNULL (pincode_parameter, пин-код)) ИЛИ pincode IS NULL) Результат. Возвращает девять строк, которые имеют города = 'Дели' и pincode = 110034. Но теперь он также принимает строки pincode = NULL. который не ожидал. Но, как и я: pincode_parameter = NULL SELECT * FROM dbo.dbo.tabEmployee WHERE город = 'Дели' AND (пин-код = (ISNULL (pincode_parameter, пин-код)) ИЛИ пинкод IS NULL) result- Возвращает десять строк которые имеют города = 'Дели' и pincode = 110034 с pincode = NULL. Работает отлично. Хорошо. – user2791156