Я строю хранимую процедуру, которая использует параметр бит. Этот параметр бит используется для фильтрации столбца электронной почты.Использование типа данных BIT для фильтрации запроса в предложении WHERE
if @param is 1 - показать всех клиентов, у которых есть письмо.
if @param is 0 - показать всех клиентов без электронной почты.
и если @param является нулевым (не передается процедуре) - показывать как клиентов с электронной почтой, так и без нее.
это не так хорошо. любое предложение?
where case @email when 1 then email is not null
when 0 then email is null)
Предложение от lad2025, вероятно, как я пошел бы. Стоит отметить, что это приводит к появлению «уловить все» типа запросов, которые могут иметь серьезные проблемы с производительностью. Вы можете заглянуть в эту статью для некоторых способов борьбы с этими проблемами. http://sqlinthewild.co.za/index.php/2009/03/19/catch-all-queries/ –
Обратите внимание, что сначала вы используете '@ param', а затем используете' @ email' в своем примере кода. Попробуйте использовать хорошие имена переменных, например '@ HasEmail'. –
Спасибо, Sean! Я взгляну на статью –