1、结果集排序
   select * from table_a
   在没有用order by来排序的情况下,结果结是怎么排序的?
2、WHERE条件筛选顺序
   select * from table_a where [la]>1 and [lb]='X'
   是先筛选条件 [la]>1 还是 [lb]='X'
本人比较菜,第一次上来提问,多谢指教!

解决方案 »

  1.   

    1、结果集排序
      select * from table_a
      在没有用order by来排序的情况下,结果结是怎么排序的?按照物理地址(就是插入数据的先后顺序)来显示,不存在你说的排序.
    2、WHERE条件筛选顺序
      select * from table_a where [la]>1 and [lb]='X'
      是先筛选条件 [la]>1 还是 [lb]='X'这个不好说,系统会去自动优化查询的顺序,你可以查看执行计划.
    不过就你这个条件,理论上是先[la]>1 再 [lb]='X'.
      

  2.   

    1、结果集排序
      select * from table_a
      在没有用order by来排序的情况下,结果结是怎么排序的?在没有聚集索引的情况下,按照物理地址(就是插入数据的先后顺序)来显示,不存在你说的排序.
    2、WHERE条件筛选顺序
      select * from table_a where [la]>1 and [lb]='X'
      是先筛选条件 [la]>1 还是 [lb]='X'看计划,理论上是先[la]>1 再 [lb]='X',如果第一天没索引,第二列有索引,优化器可能选择先计算第二列。
      

  3.   

    我对 “存在聚集索引的情况下 按照聚集索引列排序出现” 这个存在怀疑:
          上次有个同事用游标的时候没有用ORDER BY ,结果没有按照聚集索引排序,查了很长时间都没检查出来是这个地方有问题。
      

  4.   

    sorry 不直不知道怎么给分