溫馨提示×

SQL分頁的幾種寫法

sql
小云
116
2023-08-23 17:39:09
欄目: 云計(jì)算

在SQL中實(shí)現(xiàn)分頁的幾種寫法如下:

  1. 使用LIMIT和OFFSET:這是最常見和簡單的分頁寫法。使用LIMIT限制返回的結(jié)果數(shù)量,使用OFFSET指定從第幾條記錄開始返回。例如,要返回第11條到第20條記錄,可以使用LIMIT 10 OFFSET 10。
SELECT * FROM table_name LIMIT 10 OFFSET 10;
  1. 使用ROW_NUMBER()函數(shù):ROW_NUMBER()函數(shù)是一種將每一行分配一個(gè)唯一的數(shù)字的函數(shù)。可以使用該函數(shù)創(chuàng)建一個(gè)臨時(shí)表,并在該表的結(jié)果中使用LIMIT和OFFSET來進(jìn)行分頁。
SELECT * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY column_name) AS row_num, * FROM table_name
) AS temp_table
WHERE row_num BETWEEN 11 AND 20;
  1. 使用FETCH和OFFSET:FETCH FIRST和OFFSET是ANSI SQL標(biāo)準(zhǔn)中引入的關(guān)鍵字,用于實(shí)現(xiàn)分頁。FETCH FIRST指定返回的結(jié)果數(shù)量,OFFSET指定從第幾條記錄開始返回。例如,要返回第11條到第20條記錄,可以使用FETCH FIRST 10 ROWS ONLY OFFSET 10。
SELECT * FROM table_name
OFFSET 10 ROWS FETCH FIRST 10 ROWS ONLY;
  1. 使用子查詢:可以使用子查詢來實(shí)現(xiàn)分頁。內(nèi)部查詢使用LIMIT和OFFSET來獲取所需的結(jié)果,外部查詢使用COUNT(*)來獲取總記錄數(shù)。
SELECT * FROM table_name
LIMIT 10 OFFSET 10;
SELECT COUNT(*) FROM table_name;

這些都是常見的SQL分頁寫法,具體使用哪種寫法取決于數(shù)據(jù)庫的類型和支持的語法。

0