在 SQL 中,分頁通常是通過限制查詢結果的數量并指定從哪一行開始獲取數據來實現的。不同的數據庫系統使用不同的分頁關鍵字。
以下是常見數據庫系統的分頁關鍵字:
- MySQL / PostgreSQL / SQLite
使用 LIMIT 和 OFFSET 來進行分頁:
LIMIT 限制返回的結果數量。
OFFSET 指定跳過前面多少行數據。
SELECT * FROM table_name
ORDER BY column_name
LIMIT 10 OFFSET 20;
這里,LIMIT 10 表示返回 10 條記錄,OFFSET 20 表示跳過前 20 條記錄。
- SQL Server
SQL Server 使用 OFFSET 和 FETCH 來進行分頁,通常與 ORDER BY 一起使用:
SELECT * FROM table_name
ORDER BY column_name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
這里,OFFSET 20 ROWS 表示跳過前 20 條記錄,FETCH NEXT 10 ROWS ONLY 表示獲取接下來的 10 條記錄。
- Oracle
在 Oracle 中,分頁通常是通過 ROWNUM 或 ROW_NUMBER() 來實現:
使用 ROWNUM:
SELECT * FROM (SELECT * FROM table_name ORDER BY column_name
)
WHERE ROWNUM <= 30 AND ROWNUM > 20;
使用 ROW_NUMBER():
SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY column_name) AS row_numFROM table_name
) WHERE row_num > 20 AND row_num <= 30;
- MariaDB
與 MySQL 類似,使用 LIMIT 和 OFFSET:
SELECT * FROM table_name
ORDER BY column_name
LIMIT 10 OFFSET 20;
總結: MySQL/PostgreSQL/SQLite/MariaDB: 使用 LIMIT 和 OFFSET。 SQL Server: 使用
OFFSET 和 FETCH。 Oracle: 使用 ROWNUM 或 ROW_NUMBER()。
這些關鍵字可以幫助你分頁查詢大數據集,提升查詢性能和可操作性。