如何使用CASE WHEN语句将其简化为一个WHERE子句:
@param varchar(1) NULL
if @param = 'Y'
... WHERE field = @param
else if @param = 'N'
... WHERE field = @param OR field IS NULL
提前致谢
答案 0 :(得分:0)
像这样:没有CASE Expression
{{1}}
答案 1 :(得分:0)
我认为这样做会:
WHERE field = @param OR (@param = 'N' AND field IS NULL)
答案 2 :(得分:0)
您可以使用coalesce进行简化,假设应为“N”参数检查NULL字段。
where coalesce(field, 'N') = @param
当然,如果@param可能不是'Y'或'N',那么这可能会导致奇怪的结果