SELECT ID,ZONE,CODE FROM BIZ_SYS_NUMBERLIST
WHERE 1=1 AND ISUSERD=0 AND FLAG = 2 AND ZONE = '0574' AND
NOT exists (
SELECT 0 FROM BIZ_SYS_COMPAP_EXPAND where limit=ZONE||CODE and enabled=1 and FLAG='zjcode'
)有没更好的办法优化一下?
WHERE 1=1 AND ISUSERD=0 AND FLAG = 2 AND ZONE = '0574' AND
NOT exists (
SELECT 0 FROM BIZ_SYS_COMPAP_EXPAND where limit=ZONE||CODE and enabled=1 and FLAG='zjcode'
)有没更好的办法优化一下?
解决方案 »
- 【急!!!】 请教关于 Oracle10g 升级
- 哪位牛人给帮我把这个sqlserver的触发器翻译成oracle的?
- statspack报告中的语句不知道是哪里产生的,不知大家有没有碰到过???????????????????????????
- 3.求一条sql语句
- oracle数据库升级到10.2.0.3.0,本机可以连接数据库,其他机器无法连接数据库
- 求助:一个sql的写法,可能是很常见的,但是不知道如何修改
- 能建这样的视图吗
- 百思不得其解,怎么回事啊?这条sql语句怎么总是没结果?没睡的高手进!300分!
- 100多万条数据不小心被删除了,还可以恢复吗?SOS!!!
- sql注入问题
- sqlserver2000存储过程如何改为oracle存储过程?
- 求一查询语句,关于横向求和的问题!
SELECT ID,ZONE,CODE FROM BIZ_SYS_NUMBERLIST
WHERE ZONE = '0574' AND
NOT exists (
SELECT 0 FROM BIZ_SYS_COMPAP_EXPAND where limit=ZONE||CODE and enabled=1 and FLAG='zjcode'
)
and id=1 AND ISUSERD=0 AND FLAG = 2;确定的需要放在where子句的最后
WHERE b.limit(+)=a.ZONE||a.CODE and b.enabled(+)=1 and b.FLAG(+)='zjcode'
and b.limit=null
AND 1=1 AND ISUSERD=0 AND FLAG = 2 AND ZONE = '0574'1、使用多个表的时候尽量给表指定别名,否则ORACLE需要从字段列表中检索以区分此字段是属于哪个表的
2、外连接比exists// not exists 效率高
and b.limit=null
本身连接 b.limit(+)=a.ZONE||a.CODE 查询是,当不存在
b.limit=a.ZONE||a.CODE 时 a表的值仍然输出到结果集,B表字段值此时为null
条件and b.limit=null正好把这一部分筛选出来