读书人

检索条件在存储过程中的的写法解决办法

发布时间: 2012-01-26 19:40:46 作者: rapoo

检索条件在存储过程中的的写法
对一个表和几个表进行检索取值,现在要求,根据存储过程中中传的参数不同,对表进行不同条件的查询,并按参数的条件进行排序,

如 如果参数param1=0,select * from tab1 where a > 100

param1=1,select * from tab1 where a <100
如果参数param2 =0 用order by co1 asc
param2 =1 用order by co1 desc

这个存储过程中,其实SQL是一个很长复杂的SQL语句,如果用大的if else进行括起来,

if中,还是else中,都是相同的,就这两点不同,那么觉得这很一部分可以共用,只是改下条件,,但我想,是不是不家其它的方法,可以直接将条件做为参数,然后赋于SQL进行查询呢???





[解决办法]
可以的.

if(param1=0) then
other:= 'and a> 100 ';
elseif(param1=1) then
other:= 'and a <100 ';
end if;
select * from a
where 1=1||other;

大概就是这样写的

读书人网 >oracle

热点推荐