在 SQLSERVER 中 TOP (N) PERCENT 用于返回N条或%N的结果集,对于大数据量表的查询非常方便。其中PERCENT 代表百分比,PERCENT也可以省略,省略时TOP (N) 是返回N条结果集。TOP在日常的查询语句中应用比较广泛,特别是在分页查询,根据特定字段排序并返回特定行数的场景下。
现在创建一张测试表学生信息表,以查询表中年龄最大的前五名学生为例,编写下面的查询SQL:
select top 5 * from dbo.student order by age desc
返回的结果集为:
如果我们需要返回18条记录中占比百分之五且年龄最大的记录,就需要这样编写SQL:
select top 5 PERCENT * from dbo.student order by age desc
返回的结果集为:
发现返回的行数为18*0.05 = 0.9 向上取整的值1 。
一般场景下,TOP对查询性能也有很大的提升,因为返回N条记录普遍比返回表中所有行数消耗的数据库资源要少,时间也更短。但在一些特殊的场景下,TOP N却比不使用TOP N的语句效率要低。
本文暂时没有评论,来添加一个吧(●'◡'●)