求一sql语法
PROCEDURE pro_ab(
in_a in char ,
in_b in char
);
以上一个过程 pro_abc , 传入二个参数,分别是 in_a,in_b
1.
当in_a 不为null的时候,则 sql 语句里面的where条件
栏位1 = in_a
当in_b 不为null的时候,则 sql 语句里面的where条件
栏位2 = in_b
则 栏位1 = in_a and 栏位2 = in_b ;
2. 如果 in_a 为null ,则in_b 不为null
则 and 栏位2 = in_b ;
即传入的参数值不同, where里面的 and 也不一样。求一sql语句。
------解决方案--------------------
select * from t where t.栏位1=decode(in_a,null,t.栏位1,in_a) and t.栏位2=decode(in_b,null,t.栏位2,in_b)
------解决方案--------------------楼主第二条是啥意思?没看懂。
------解决方案-------------------- and(栏位1=in_a or in_a is null)
------解决方案--------------------
1 (栏位1=in_a or in_a is null) and (栏位2=in_b or in_b is null)
------解决方案--------------------select
*
from tables
where (in_a is not null and 栏位1 = in_a)
and (in_b is not null and 栏位2 = in_b)