一条SQL 中,里面有两个 IN 集合语句。问题出在第二个IN 上。本身 SELECT IN 查询的是一个视图.视图不慢.有什么方法能把 IN 转化为别的查询,加快查询速度么?请高手解答.谢谢。
解决方案 »
- oracle 9i 外网连接的问题,请教高手!
- 这个视图怎么写?
- 招聘Java工程师、系统工程师和网页设计师(工作地点:北京 )
- oracle中sysdba用户通过odbc数据源连接,怎样配置?
- ★请教:系统灵活带来的问题:存储过程中动态获得某表某字段的值???
- 求一存储过程
- Timestamp段查询
- 100分求救,pro*c的问题。
- 大家知不知道单CPU的企业版和标准版的Oracle 9i、DB2 v7.2和SQL 2000实际可以多少价钱买到??(正版)
- pb连接ORACLE9i所须的动态库及配置文件有那些?分不够再加!
- 不同地址的主机,不同类型的数据库,如何交互数据?
- 请问在Oracle中如何设置像SQL Server中插入一行字段值会自动加1的字段,谢谢
基本上是IN 换 EXISTS
in(111,22,432,52,423,4532,4321,342,432432,12323,432)这个IN 里的内容很长.影响速度。
把 f_filed in ( select ... table where ... ) 替换成
exists ( select top 1 1 from ... table where ... and 关键表.f_filed = table.与f_filed相对应的字段 )同样的代码在sql plus 中执行,则报错,说 未找到预期的关键字 from 。 换另一种方式
exists ( select 与f_filed相对应的字段 from ... table where ... and 关键表.f_filed = table.与f_filed相对应的字段 )
在sql plus 中可以执行。
不过俺在vc++ 使用记录集类的程序中也不行。甚至没有错误描述。
或者改成连表处理
union 试试看
select * from tbl where id=1
union
select * from tbl where id=2