首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2012-01-26 
检索条件在存储过程中的的写法对一个表和几个表进行检索取值,现在要求,根据存储过程中中传的参数不同,对表

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

如   如果参数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;

大概就是这样写的

热点排行