我有4个查询条件,可以根据这4个条件的任意组合而进行查询,我写了存储过程如下
CREATE PROCEDURE ado_reverseinq
@ao char(10),
@po char(10),
@so char(10),
@movment char(10) AS
select batchno from adobatch where aono=@ao or pono=@po or sono=@so or movment=@movment
但这明显不能达到我所要的要求,请问怎么写这个才好啊?
CREATE PROCEDURE ado_reverseinq
@ao char(10),
@po char(10),
@so char(10),
@movment char(10) AS
select batchno from adobatch where aono=@ao or pono=@po or sono=@so or movment=@movment
但这明显不能达到我所要的要求,请问怎么写这个才好啊?
CREATE PROCEDURE ado_reverseinq
@ao char(10),
@po char(10),
@so char(10),
@movment char(10),
@build char(2) (*组合字,根椐其值判断采用什么组合,如为1就只查询@AO,为2则查询@ao和@PO的组合......*)
AS
if @build=1
select batchno from adobatch where aono=@ao
if @build=2
select batchno from adobatch where aono=@ao or po=@po
if @build=3
select batchno from adobatch where aono=@ao and po=@po
......
感觉不是好办法......呵呵
CREATE PROCEDURE ado_reverseinq
@ao char(10),
@po char(10),
@so char(10),
@movment char(10) AS
select batchno from adobatch where
(aono=@ao and len(@ao)>0) or
(pono=@po and len(@po)>0) or
(sono=@so and len(@so)>0) or
(movment=@movment and len(@movment)>0)
也不明白你现在的过程不能工作!按我的理解,你是希望通过这个过程来返回一个表,然后可以在select语句中用?如果是那样,存储过程完不成这样的事。不过如果你用sql Server, 你可以试一下:UDF---User Define Function ,他是可以返回一个表的。。在我的程序中就有这样的:
select * from CheckBom("C");
我现在有4个条件,分别为a,b,c,d ,我想可以按着a,b,c,d 4个条件中的任意一个条件来查询,也可以按着a,b,c,d 4个条件中的任意几个组合成一个查询条件进行查询,比如同时满足条件a和B,或b,c,d 等等,请问怎么做?
如果是要同时满足两个条件,应该是用and来连接几个查询条件把
要不你这样试试看
CREATE PROCEDURE ado_reverseinq
@ao char(10),
@po char(10),
@so char(10),
@movment char(10) AS
select batchno from adobatch where
(aono=@ao or len(@ao)=0) and
(pono=@po or len(@po)=0) and
(sono=@so or len(@so)=0) and
(movment=@movment or len(@movment)=0)不过这个问题只给20分少了点