单表查询
一条单表查询的T-SQL一般包含6个字句,他们的执行顺序如下:
from => where => group by => having => select => order by
ORDER BY子句
为什么使用order by
我们知道SQL SERVER中的表是基于关系模型的,而关系模型又是建立在集合论上面的。一个数据库表代表一个集合(如果有重复记录则是多集),集和是无序的,虽然有时候会发现一张表按Id排序,但不能保证每张表都会这样。所以为了保证结果中的行按一定顺序排序,我们需要使用order by。
注意点
- 使用了ORDER BY子句后查询结果将不符合表的要求,因为这时的结果中的行将具有一定的顺序,ANSI称之为游标,一些语言元素与运算不能处理游标。
- ORDER BY是唯一能够引用SELECT处理阶段创建的别名列的阶段。
- 文章开头已经标明ORDER BY是在SELECT阶段之后执行的,不过ORDER BY是可以指定SELECT没有指定的元素的。但是当SELECT子句中指定了DISTINCT时,ORDER BY 只可以指定SELECT中选中的元素。
TOP选项
功能
TOP选项是T-SQL特有的,用于限制查询返回的行数或百分比。
重点
- TOP选项是可以说是在ORDER BY之后执行的