日期:2014-05-17  浏览次数:20892 次

【在线等待】Oracle的查询语句怎么写????
是写一个查询语句:a,b,c,d,e这5个是查询条件
用户可能只输入其中的几个条件
那怎么来写这个查询语句
先谢!!!

------解决方案--------------------
程序里用查询条件拼接或者
程序里经常是这样写:
SELECT * FROM EMP E
WHERE E.EMPNO=DECODE(&EMPNO,'NONE',E.EMPNO,&EMPNO)
没有传入值的时候,程序默认为'NONE'

上面那种事我常用的,下面的也可
SELECT * FROM EMP E
WHERE E.EMPNO=NVL2(&EMPNO,&EMPNO,E.EMPNO)
------解决方案--------------------

你给我说一下decode()这里面的几个参数是什么意思

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

------解决方案--------------------
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

条件=值1,decode的返回值为返回值1
条件=值2,decode的返回值为返回值2

条件=值n,decode的返回值为返回值n

条件不等于任何给定的值,返回缺省值
------解决方案--------------------
decode函数就相当于if语句
if 条件 = 值1 then
  返回 返回值1;
elsif 条件 = 值2 then
  返回 返回值2;
...
elsif 条件 = 值n then
返回 返回值n;
else
返回 缺省值;
end if;

------解决方案--------------------
用 case when then end

也不错。。如果写完了。。可以给我优化优化哈哈。。。