SQL Multiple Filter-оптимальный способ
Как реализовать этот простой сценарий с наименьшими возможными затратами (SQL)?
(реализуйте хранимую процедуру, поддерживающую все комбинации применяемых фильтров.)
Table
name | dateOfbirth | phone | email
N1 | 01-01-1992 | P1 | E1
N2 | 12-08-1976 | P2 | E2
N3 | 09-11-1989 | P3 | E3
N4 | 04-06-1991 | P4 | E4
Filter
[x] Name
[x] dateOfbirth
[x] phone
[x] email
После просмотра SQL-запросов и фильтров, реализованных в течение многих лет и многими способами.
Я думаю, что мне давно пора ... обновить.
Ссылки
Отметьте / исправьте этот вопрос, если он найден как дубликат
2 ответа:
Всякий раз, когда я делаю необязательные фильтры, я выбираю некоторые данные, которые будут представлять все данные, а затем использую что-то вроде этого:
SELECT name, dateOfbirth, phone, email FROM Table WHERE (@a_name = '' or name = @a_name) AND (@a_date = '1900-01-01' or dateOfbirth = @a_date) AND (@a_phone = '' or phone = @a_phone) AND (@a_email = '' or email = @a_email)