Sql Server 是从左执行到右。

解决方案 »

  1.   

    那你倒过来写:Select * From mytable Where id = 1 And numbers<>2 :)
      

  2.   

    sqlserver 有自己的一套优化机制叫做查询优化器,他可以根据你写的sql语句确定查询方案(比如选择使用表扫描还是动态索引扫描)。如果查询条件是多个(使用or子句或and子句),sql 将分成两个或多个查询语句,分别评估使用索引匹配的可能性,确定搜索方案然后进行查询,最后将所有得到的结果进行合并和排序操作。同时“不等于”操作符不是sql server搜索参数的合法操作符,建议改为numbers>2 or numbers<2
      

  3.   

    Sql Server 是从左执行到右。
      

  4.   

    sql server会优化你的sql语句。这也正是sql 吹捧自己的一个理由。另外<>是sql 92的标准,我觉得完全可以使用。而不必写成:numbers>2 or numbers<2 
    你甚至可以写成:numbers!=2