由于MySQL与Oracle中一般可以借助内置函数直接输出表记录的序号,SQLServer2000没有提供这种函数,新版SQLServer2005终于提供了一种:row_number() over(order by 表字段)的函数实现了该功能,在此将一般实现方法与SQLServer2005中的函数法及其分页方法列出
SELECT TOP 5 * FROM (SELECT ROW_NUMBER() OVER(ORDER BY Uid) AS ROWNUM_,* FROM(select * from ES_USER)ROW_ ) TOP_ where ROWNUM_ <= 5 ;
注:ORDER BY Uid,根据ES_USER表中Uid来进行排序;
row_number() 、Over(order by XXX [desc/asc])这两个函数一定是同时存在的。
语法: select top 5 * from( select row_number() over(order by 字段名) as 字段别名 from 表名) 别名 where 字段别名<=5