您的位置:首页 > 数据库

sql语句的执行顺序

2015-11-18 19:13 274 查看
Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。

where条件从右往左解析???

--解析都是从右往左解析的
scott@YPCOST> SELECT * FROM DEPT WHERE DEPTNOQ=10 AND LOCT='BOSTON';
SELECT * FROM DEPT WHERE DEPTNOQ=10 AND LOCT='BOSTON'
*
第 1 行出现错误:
ORA-00904: "LOCT": 标识符无效
--上面where条件的两个字段名都是错误的 提示loct无效

scott@YPCOST> SELECT * FROM DEPT WHERE DEPTNO1=10 AND LOC='BOSTON';
SELECT * FROM DEPT WHERE DEPTNO1=10 AND LOC='BOSTON'
*
第 1 行出现错误:
ORA-00904: "DEPTNO1": 标识符无效
--上面where条件的loc字段是正确的 提示deptno1无效

scott@YPCOST> SELECT * FROM DEPT WHERE DEPTNO1=10 OR LOC='BOSTON';
SELECT * FROM DEPT WHERE DEPTNO1=10 OR LOC='BOSTON'
*
第 1 行出现错误:
ORA-00904: "DEPTNO1": 标识符无效

scott@YPCOST> SELECT * FROM DEPT WHERE DEPTNO1=10 OR LOCA='BOSTON';
SELECT * FROM DEPT WHERE DEPTNO1=10 OR LOCA='BOSTON'
*
第 1 行出现错误:
ORA-00904: "LOCA": 标识符无效看情况应该是。对不对后面再研究!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 oracle