oracle查询语句,where后面的条件,如果:_chartid 参数有值就带参数查询,如果参数没有值就舍去查询条件,用SQL语句写出来,请再不要告诉我在前台代码里给判断式。select * from chart where chartid=:_chrtid and chartname=:_chartname
这是存储过程吧? create procedure checkwhere @a char(20),@b char(20) as if(a is not null,b is not null) select * from chart where... else select * from chartexecute checkwhere 'a','b' 好像是这么写,我也不太记得了。
这个很难搞的,没有办法只能试下如下了,只能用plsql块了,单条sql是搞不定的! declare dnamet varchar(20):='ACCOUNTING'; sqlcon varchar(20):='11'; begin
if (:_chrtid!='' or :_chrtid!=null) select * from chart where chartid=:_chrtid and chartname=:_chartname else select * from chart where chartname=:_chartname end;你要是想用存储过程的话,直接把这些plsql块copy到存储过程里面即可。
create procedure checkwhere
@a char(20),@b char(20)
as
if(a is not null,b is not null)
select * from chart where...
else select * from chartexecute checkwhere 'a','b'
好像是这么写,我也不太记得了。
这个很难搞的,没有办法只能试下如下了,只能用plsql块了,单条sql是搞不定的!
declare dnamet varchar(20):='ACCOUNTING';
sqlcon varchar(20):='11';
begin
if (:_chrtid!='' or :_chrtid!=null)
select * from chart where chartid=:_chrtid and chartname=:_chartname
else
select * from chart where chartname=:_chartname
end;你要是想用存储过程的话,直接把这些plsql块copy到存储过程里面即可。
这边怎么处理呢?