[Quote=引用楼主 liweiguowangshubiao 的回复:]
select top 10 * from Table where id not in(select top 10 id from Table)
它的执行原理是先查出所有满足条件的数据 再取前10条
还是只查出满足条件的前10条??、
[/Quote]
只选择满足条件的前10行不会查询全部。
如果指定order by 则返回排序前的 前10行,也就是说 order by 只对选择出的前10行排序,而不是全部排序在取前10行。如果你有大数据量的表你可以试一下,top 比 不加top 要快的多的多。
帮助文档的原话是这么说的:
如果查询包含 ORDER BY 子句,则将返回按 ORDER BY 子句排序的前 expression 行或 expression% 的行。如果查询没有 ORDER BY 子句,则行的顺序是随意的。