WITH query AS (
SELECT
syusers0.id AS id5,
syusers0.createdatetime AS createda25_,
syusers0.modifydatetime AS modifyda35_,
syusers0.name AS name5,
syusers0.password AS password5,
ROW_NUMBER() OVER (ORDER BY syusers0.name DESC) AS hibernaterow_nr
FROM sypro.syuser syusers0_
WHERE 1=1
)
SELECT * FROM query
WHERE hibernaterow_nr >= 5 AND hibernaterow_nr < 11;
UNION ALL 各分支共用同一資料來源時效益顯著。ORDER BY 子句為結果集排序並產生連續行號。WHERE row_nr BETWEEN @start AND @end 切取所需頁面。ORDER BY 欄位有索引支援,避免大量排序開銷。OPTION (USE HINT('MATERIALIZE_CTE'))(較新版本支援)。Hibernate / NHibernate 等 ORM 框架自動產生分頁 SQL 時,常採用此模式。理解其運作機制有助於調整索引、改寫複雜報表查詢。