@a@b
where case when (@a = null) then 1 = 1 else @a=a and b=@b
这样写是会报错的。好像是因为where 后面应该跟一个值。我这里的参数@a和值a都有可能会是空,因为null和null比较是不等的。所以不知道怎么写了。
where (1 = (CASE WHEN @a='' OR @a IS NULL THEN 1 ELSE 0 END) OR a=@a ) AND b=@b
我自己解决了。。。