⑴ sql server如果不使用order by子句,查询返回的结果是按照什么排序的
如果不指定order by 子句,则查询结果的顺序不确定。并一定是按主键。查询优化器会根据实际情况生成执行计划。排序需要成本的,而且成本可能不小。如果没有明确指定order by子句,则查询结果的顺序不确定。
如果希望按某种顺序返回结果,必须明确指定order by子句。
⑵ sql中没有order by,是否存在默认排序
oracle数据库是没有默认排序的 要排序必须加上order by 因为oracle是按块进行读取数据的 如果数据按顺序存储,则可能使读取出来的数据是按顺序的,给用户误解为默认排序 oracle没有进行任何排序操作,rowid表示的是数据存放的数据块内部地址,如果没有要求排序,oracle会顺序的从数据块中读取符合条件的数据返回到客户端,不过看起来好像是按照rowid排序似的 如果数据量足够大,即使相同的语句,都有可能不同的结果。 一般而言表是堆表所以是无序的 他是按照也即物理存放顺序来读取的
⑶ sql查询中,order by 排序失效(逗号后面的换了其他任何都没用)
优先handerdate 排序 ,handerdate排序之后才会进行你得第二个字段排序 ,第二个字段排序是在你第一次排序完的基础上进行的, 所以你这个排序应该是对的
⑷ sql 数据量很大 有where 和order by,不加order by 速度很快,加了就很慢,为什么
order by是用来排序的,如果刚开始的数据库没有按照你想要的顺序排列的话,用order by的时候就会使得数据库中的数据重新排列,这样执行起来就慢了,况且表中的记录也蛮多的,如果记录较少的话,就没什么快慢之分了
查询的语法 order by 必须在最后
建议 添加索引