限制结果集行数:(不同数据库,有不同的方法)
MySQL中用limit,语法:limit 首行行号,最多显示多少行
放在select语句最后
如:按照工资降序排列的从第二行开始(行号从0开始)的最多五条记录:
SELECT * FROM T_Employee ORDER BY FSalary DESC LIMIT 2,5
MSSQL2000:top N 返回结果集中,前N行的数据
如:检索工资水平排在前五位(工资从高到低)的员工信息:
select top 5 * from T_Employee order by FSalary Desc
MSSQL2005:ROW_NUMBER()
ROW_NUMBER()函数可以计算每一行数据在结果集中的行号(从1开始计数),语法:ROW_NUMBER OVER(排序规则)
如:
SELECT ROW_NUMBER() OVER(ORDER BY FSalary),FNumber,FName,FSalary,FAge FROM T_Employee
第一列中的数据是通过ROW_NUMBER()计算出来的行号。
若用一下SQL语句实现返回第3行到第5行的数据(按照工资降序):
SELECT ROW_NUMBER() OVER(ORDER BY FSalary DESC),FNumber,FName,FSalary,FAge FROM T_Employee WHERE (ROW_NUMBER() OVER(ORDER BY FSalary DESC))>=3 AND (ROW_NUMBER() OVER(ORDER BY FSalary DESC))<=5