我正在构建一个使用位参数的存储过程。 此位参数用于过滤电子邮件列。
如果@param为1 - 显示所有有电子邮件的客户。
如果@param为0 - 显示没有电子邮件的所有客户。
如果@param为null(未传递给程序) - 显示有或没有电子邮件的客户端。
不太顺利。有什么建议吗?
where case @email when 1 then email is not null
when 0 then email is null)
答案 0 :(得分:5)
使用简单的OR
:
WHERE (@param IS NULL)
OR (@param = 1 AND email IS NOT NULL)
OR (@param = 0 AND email IS NULL)