在B站上看到一個分頁影片,老師講的挺好 ,記錄下來。想看原影片的可以去B站
--1.建立Students表
CREATE TABLE students (
ID INT PRIMARY KEY IDENTITY(1,2),
NAME NVARCHAR(50) NOT NULL,
SEX CHAR(6) CHECK (SEX IN ('Male', 'Female'))
);
GO
--2. 插入30條資料
INSERT INTO students (NAME, SEX)
VALUES
('關羽', 'Male'),
('張飛', 'Male'),
('趙雲', 'Male'),
('馬超', 'Male'),
('黃忠', 'Male'),
('諸葛亮', 'Male'),
('曹操', 'Male'),
('劉備', 'Male'),
('孫權', 'Male'),
('周瑜', 'Male'),
('司馬懿', 'Male'),
('夏侯惇', 'Male'),
('許褚', 'Male'),
('典韋', 'Male'),
('龐統', 'Male'),
('姜維', 'Male'),
('陸遜', 'Male'),
('魏延', 'Male'),
('張遼', 'Male'),
('徐晃', 'Male'),
('甘寧', 'Male'),
('太史慈', 'Male'),
('呂蒙', 'Male'),
('孫尚香', 'Female'), -- 作為例子,孫尚香是女性
('祝融夫人', 'Female'), -- 祝融夫人是孟獲之妻,在《三國演義》中有出場
('馬雲騄', 'Female'), -- 馬超之妹,在民間傳說中出現
('鄒氏', 'Female'), -- 張濟之妻,在《三國演義》中提到
('蔡文姬', 'Female'), -- 著名才女
('貂蟬', 'Female'); -- 在《三國演義》中著名的虛構人物
--3.分頁:假設每頁5條資料
--查詢第一頁
select top 5 * from students
--第二頁
select top 5 * from students where id not in(1,3,5,7,9)
--select top 5 * from students where id not in(1,3,5,7,9)
1,3,5,7,9有點麻煩,可以替換一下
使用select top 5 id from students
select top 5 * from students
where
id not in(select top 5 id from students)
-- 第三頁
select top 5 * from students
where
id not in(select top 10 id from students)
--推公式
select top 每頁數量 * from students
where
id not in(select top 每頁數量*(當前頁-1) id from students)
--定義變數:top後如果是變數需要把變數用括號包裹
declare @PageSize int=5
declare @PageIndex int =1
select top (@PageSize) * from students
where id not in(select top (@PageSize*(@PageIndex-1)) id from students)