在oracle数据库中,有一个表table1,表中有一个字段a,在a有创建了一个索引。现有一个SQL如下:
select * from table1 where a = :v_1;
其中v_1是一个字符型参数,如果这个参数传入的值是一个空值,则返回所有的数据(如果按照上面的Sql是不能达到的)应该怎修改上面的SQL,即不破坏a的索引,又能很好的处理空值问题。
请赐教!
select * from table1 where a = :v_1;
其中v_1是一个字符型参数,如果这个参数传入的值是一个空值,则返回所有的数据(如果按照上面的Sql是不能达到的)应该怎修改上面的SQL,即不破坏a的索引,又能很好的处理空值问题。
请赐教!
解决方案 »
- Oracle中关于SQL列名的问题?
- 急求一个复杂SQL查询语句!
- 请高手解决,急
- 求Oracle下类似于SQLServer中sp_bindefault的系统存储过程?
- Oracle 触发器 容错??
- 求一语句,取得不重复数字的最小值
- 怎么在bat里取得sql文件里方法的返回值?
- 我总结的RedHat8.0 + Oracle9.0.2 + Proc(Pro*c)的环境设定以及Makefile的编写! 希望对大家有帮助!
- 请问这个递规查询怎么做!
- 怎样在JAVA程序中得到ORACLE中所有用户的ID和PASSWORD呢?
- ORA-01033: ORACLE initialization or shutdown in progress
- oracle语句筛选,请高人指点简洁写法
sqlstr:=‘select * from table1 ’ || case when v_1 is not null then ‘where a = :v_1' end;
v_1 is not null 时 是走索引
a=(case when v_1 is not null then v_1 end) or
1=(case when v_1 is null then 1 end)else 1=1 end