時(shí)間:2024-02-05 11:03作者:下載吧人氣:18
🍺不聞不若聞之,聞之不若見(jiàn)之,見(jiàn)之不若知之,知之不若行之。學(xué)至于行之而止矣。——荀子
大家好!我是只談技術(shù)不剪發(fā)的 Tony 老師。
在使用 SQL 語(yǔ)句實(shí)現(xiàn)分頁(yè)查詢時(shí),我們需要知道一些額外的參數(shù)信息,例如查詢返回的總行數(shù)、當(dāng)前所在的頁(yè)數(shù)、最后一頁(yè)的頁(yè)數(shù)等。在傳統(tǒng)的實(shí)現(xiàn)方法中我們需要執(zhí)行額外的查詢語(yǔ)句獲得這些信息,本文介紹一種只需要一個(gè)查詢語(yǔ)句就可以返回所有數(shù)據(jù)的方法,也就是通過(guò) SQL 窗口函數(shù)實(shí)現(xiàn)高效的分頁(yè)查詢功能。
本文使用的示例表和數(shù)據(jù)可以這里下載。
在 SQL 中實(shí)現(xiàn)分頁(yè)查詢的傳統(tǒng)方法就是利用標(biāo)準(zhǔn)的 OFFSET … FETCH 語(yǔ)句或者許多數(shù)據(jù)庫(kù)支持的 LIMIT … OFFSET 語(yǔ)句,例如:
— Oracle、SQL Server、PostgreSQL
SELECT emp_name, sex, email
FROM employee
ORDER BY emp_id
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;
— MySQL、PostgreSQL、SQLite
SELECT emp_name, sex, email
FROM employee
ORDER BY emp_id
LIMIT 10 OFFSET 10;
網(wǎng)友評(píng)論