SQL多条件查询 各位高手: SQL 中怎么进行多条件查询呀?具体如下! 我现在有四个查询条件 A , B ,C,D
查询: select * from table where column.a=a and column.b=b and column.c=c and column.d=d 如果A.B.C.D都有值时查出来的结果是对的, 可以当有其中的一个没有结果查询出来就对 我现在都是用IF 判断四个条件有没有值过在做过滤查询, 好麻烦如: if a='' and b='' and c='' and d<>'' --当A=''b=''c=''时不做条件过滤 begin select * from table where column.d=d end 像这样要判断N次,而且判断漏一种有时候还会报错,有没有那位高手有好办法呀
select *
from table
where a=isnull(@a,a) and b=isnull(@b,b) and c=isnull(@c,c) and d=isnull(@d,d)
------解决方案--------------------
SQL code
select *
from table
where column.a=case when isnull(a,'')!='' then a else column.a end
and column.b=case when isnull(b,'')!='' then a else column.b end
and column.c=case when isnull(c,'')!='' then a else column.c end
and column.d=case when isnull(d,'')!='' then a else column.d end
------解决方案--------------------
create proc w_wsp
@a varchar(50)=null,
@b varchar(50)=null,
@c varchar(50)=null,
@d varchar(50)=null
as
select * from [table] where a=isnull(@a,a) and b=isnull(@b,b) and c=isnull(@c,c) and d=isnull(@d,d)
go
--调用,只有a有值时
exec w_wsp @a='aa'