У меня есть форма, в которой пользователи могут указывать различные параметры для обработки некоторых данных (статус, дата и т. Д.).Сохраненная процедура с опциональными параметрами «WHERE»
я могу производить запрос, который является:
SELECT * FROM table WHERE:
status_id = 3
date = <some date>
other_parameter = <value>
и т.д. Каждый WHERE
не является обязательным (я могу выбрать все строки с status = 3
, или все строки с date = 10/10/1980
, или все строки с status = 3 AND date = 10/10/1980
т.д.).
Учитывая большое количество параметров, все необязательные, что является лучшим способом для создания динамической хранимой процедуры?
Я работаю над различными БД, такими как: MySQL, Oracle и SQLServer.
Это не означает, что все параметры являются необязательными. В этом примере необходимо передать @status_id. Даже если это значение null, вам нужно передать значение null для этого. – Eppz
Вы можете указать значение по умолчанию для параметров в MS SQL Server. Я не знаю о MySQL –
Просто имейте в виду, что в зависимости от вашей РСУБД и того, как она кэширует планы запросов, вы можете не получить наилучшую производительность с помощью этого метода. –