日期:2014-05-18  浏览次数:21023 次

oracle语句问题
默认情况下:where 条件语句1;
当有其他查询条件时,要让条件语句1失效,目前是这样写的:where 其他条件 or 1=0 and 条件语句1。
请问还有其他写法吗?上面这样写查起来很慢耶。。。


------解决方案--------------------
如果是拼接字符串形式的,你程序里处理条件判断后拼接一个最后的SQL字符串给它。
------解决方案--------------------
最好少用in
------解决方案--------------------
探讨
看了一下解释计划,上面语句慢的原因是:
select * from tableA where id in (select aid from tableB where name in ('123')) or 1=0会执行全表扫描,但select * from tableA where id in (select aid from tableB where name in ('123'))这句就不……