我有一张桌子 雇员
Eno ename image
1 aaa a.jpg
2 bbb b.jpg
3 ccc null
4 ddd null
我将参数传递给查询
declare @a varchar(10)
select * from employee where ?
?如果我通过图像不是空意味着我想要所有员工细节谁有其他明智的图像
我希望图像为没有图像的员工详细信息。
答案 0 :(得分:1)
select *
from employee
where (@a is null and image is null)
or (@a is not null and image is not null )
答案 1 :(得分:0)
不是100%肯定,但我认为你想要
WHERE (@a is null AND image is NULL)
OR (@a is not null AND image is not NULL)
答案 2 :(得分:0)
这是短暂而甜蜜的,但不是SARGable因此效果不佳:
select *
from employee
where coalesce(image,'') = coalesce(@a,'')
为了获得更好的表现,我会选择:
if @a is not null
select *
from employee
where image = @a
else
select *
from employee
where image is null