sqlservver 中执行的select语句中的条件的执行顺序是什么?例如
select a.f1,a.f2,b.f1,b.f2
from a join b on a.id=b.id
where a.objid<>0 and b.objid<>0 and a.objiname in ('001','002')
执行这个语句的时候,执行where条件的顺序是从左至右还是从右至左啊?知道的话就可以将排除数据大的条件放到最先执行的位置了。  谢谢大家了,我是一个初次学习这个的,请大家帮帮忙把

解决方案 »

  1.   

    sql server 是从左到右,oracle 好像从右到左
      

  2.   

    sql server 会自行优化的
      

  3.   

    在sql 的自动优化中, 它会根据查询优化器的选择决定条件的顺序, 即先判断哪个条件; 而不是根据你写的顺序邹老大的回复http://topic.csdn.net/u/20071210/10/b7cfec7a-080b-4a30-b62a-92c987d3bcdd.html?seed=1131241378
      

  4.   

    这个语句中where条件的顺序无所谓,SQL server 会自动 先按照Where 条件帅选 a 表和b 表,然后再将筛选后的结果集连接。
      

  5.   

    http://topic.csdn.net/u/20071210/10/b7cfec7a-080b-4a30-b62a-92c987d3bcdd.html?seed=1131241378
      

  6.   

    and好象都一样 没怎么强调过这问题 呵呵