我正在构建一个使用位参数的存储过程。
此位参数用于过滤电子邮件列。
如果@param 是 1 - 显示所有有电子邮件的客户。
如果@param 是 0 - 显示所有没有电子邮件的客户。
如果@param 为空(未传递给程序) - 显示有和没有电子邮件的客户端。
不太顺利。有什么建议吗?
where case @email when 1 then email is not null
when 0 then email is null)
最佳答案
使用简单的 OR
:
WHERE (@param IS NULL)
OR (@param = 1 AND email IS NOT NULL)
OR (@param = 0 AND email IS NULL)
关于sql - 使用 BIT 数据类型过滤 WHERE 子句中的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33783576/