分頁的使用
先準備範例資料表
CREATE TABLE PERSON ( no TINYINT NOT NULL, name NVARCHAR(10) NOT NULL, sex NVARCHAR(5) NOT NULL, age TINYINT NOT NULL, PRIMARY KEY (no) ) INSERT PERSON (no,name,sex,age) VALUES (1,'Bill','boy',39); INSERT PERSON (no,name,sex,age) VALUES (2,'Mary','girl',54); INSERT PERSON (no,name,sex,age) VALUES (3,'Hen','boy',20); INSERT PERSON (no,name,sex,age) VALUES (4,'Junet','girl',20); INSERT PERSON (no,name,sex,age) VALUES (5,'Tom','boy',20); INSERT PERSON (no,name,sex,age) VALUES (6,'Izesuber','girl',10); INSERT PERSON (no,name,sex,age) VALUES (7,'Tim','boy',32); INSERT PERSON (no,name,sex,age) VALUES (8,'Kimberray','girl',40); INSERT PERSON (no,name,sex,age) VALUES (9,'Brown','boy',33); INSERT PERSON (no,name,sex,age) VALUES (10,'Rose','girl',29);
SQL指令格式:「OFFSET n ROWS FETCH NEXT n ROWS ONLY」
範例1、忽略第一筆資料後,再開始只取五筆資料出來
SELECT no,NAME,sex,age FROM PERSON ORDER BY no SELECT no,NAME,sex,age FROM PERSON ORDER BY no OFFSET 1 ROWS FETCH NEXT 5 ROWS ONLY
範例2、只忽略第一筆資料後,秀出剩下的資料
SELECT no,NAME,sex,age FROM PERSON ORDER BY no SELECT no,NAME,sex,age FROM PERSON ORDER BY no OFFSET 1 ROWS
注意,「OFFSET n ROWS FETCH NEXT n ROWS ONLY」必須跟ORDER BY配合,
否則會有「FETCH 陳述式中的選項 NEXT 使用方式無效。」錯誤。
另外「FETCH NEXT n ROWS ONLY」必須跟ORDER BY與「OFFSET n ROWS」配合,
否則也會出錯。
參考資料: