微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle中的where部分的各个条件的执行顺序右->左

原网址:http://blog.sina.com.cn/s/blog_7e4ac8b50100vcwv.html

sql 条件字段(Where 部分)的分析和执行顺序[ 右——>左 ]
实验一:证明了sql的语法分析是从右到左的
下面的试验在9i和10G都可以得到相同的结果: 第1条语句执行不会出错,第2条语句会提示除数不能为零。
1.Select 'ok' From Dual Where 1 / 0 = 1 And 1 = 2;
2.Select 'ok' From Dual Where 1 = 2 And 1 / 0 = 1;
证明了sql的语法分析是从右到左的。


实验二:证明了sql条件的执行是从右到左的
drop table temp;
create table temp( t1 varchar2(10),t2 varchar2(10));
insert into temp values('zm','abcde');
insert into temp values('sz','1');
insert into temp values('sz','2');
commit;
1. select * from temp where to_number(t2)>1 and t1='sz';
2. select * from temp where t1='sz' and to_number(t2)>1;
在9i上执行,第1条语句执行不会出错,第2条语句会提示“无效的数字”
在10G上执行,两条语句都不会出错。
说明:9i上,sql条件的执行确实是从右到左的,但是10G做了什么调整呢?


还有几个网址:

http://www.jb51.cc/article/p-pfeqmotn-bdk.html

要提高SQL查询效率where语句条件的先后次序应如何写

sql中的where的条件的执行顺序
http://bbs.csdn.net/topics/350234598
Oracle 执行计划(Explain Plan) 说明
http://blog.chinaunix.net/uid-21187846-id-3022916.html

未完待续。

原文地址:https://www.jb51.cc/oracle/207267.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐