復制代碼 代碼如下:
create procedure p_News
@pageSize int,@pageIndex int
as
begin
select * from(
select *,Row_Number() over(order by Id) as [$Row_Num] from News
--where [$Row_Num]<=3 這個時候行號不能用,必須全部執行完畢以後才會產生
)as _temp where [$Row_Num] between (@pageIndex*pageSize+1) and (@pageIndex+1)*@pageSize
end
--注意參數的設置,java調用時 String sql="{call p_News(?,?)}"
--select Row_Number() over(order by id) RN,* from News where id ID>3 給最終的結果編一個號,一個連續的號
--order by必須寫在括號裡面,因為寫在from News 後面會報 sql的錯誤:除非另外還指定了 TOP 或 FOR XML,否則,ORDER BY 子句在視圖、內聯函數、派生表、子查詢和公用表表達式中無效。