select * from
(
select top(3) ROW_NUMBER() over(order by d.cteatedate)as rownum,d.*
from (
select a.*,b.LoginName as username ,c.LoginName as friendname
from DE_U_Message a left join DE_U_UserLoginInfo b on a.userid=b.userid left
join DE_U_UserLoginInfo c on a.fromuserid=c.userid ) as d
) as dt
where rownum between 1 and 3 order by dt.cteatedate desc
1; 注意 : 分页是对一个结果集分页查找, 在一个结果集上多两个 select
row_number() 函数 必须 + over() 函数,一起使用