关闭

sql语句的执行顺序

标签: 数据库oracle
136人阅读 评论(0) 收藏 举报
分类:

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": 标识符无效
看情况应该是。对不对后面再研究!!!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6374次
    • 积分:128
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:25篇
    • 译文:0篇
    • 评论:0条
    文章分类