34,590
社区成员
发帖
与我相关
我的任务
分享
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([id] [int],[name] [nvarchar](10))
INSERT INTO [tb]
SELECT '1','a1' UNION ALL
SELECT '3','a2' UNION ALL
SELECT '6','a3' UNION ALL
SELECT '8','a4' UNION ALL
SELECT '10','a5' UNION ALL
SELECT '13','a6' UNION ALL
SELECT '15','a7' UNION ALL
SELECT '18','a8' UNION ALL
SELECT '20','a9' UNION ALL
SELECT '23','a10' UNION ALL
SELECT '25','a11' UNION ALL
SELECT '28','a12' UNION ALL
SELECT '30','a13' UNION ALL
SELECT '33','a14' UNION ALL
SELECT '35','a15' UNION ALL
SELECT '38','a16' UNION ALL
SELECT '40','a17' UNION ALL
SELECT '43','a18' UNION ALL
SELECT '45','a19' UNION ALL
SELECT '48','a20' UNION ALL
SELECT '50','a21' UNION ALL
SELECT '53','a22' UNION ALL
SELECT '55','a23' UNION ALL
SELECT '58','a24' UNION ALL
SELECT '60','a25' UNION ALL
SELECT '63','a26' UNION ALL
SELECT '65','a27' UNION ALL
SELECT '68','a28'
-->SQL查询如下:
SELECT * --3.根据筛选的条件返回结果集
FROM tb t
WHERE (
SELECT COUNT(1)
FROM tb
WHERE id<= t.id
) --1.括号内代码用来生成从1开始连续的行号
BETWEEN 10 AND 20 --2.根据生成的行号选择从第10条记录开始到第20记录的结果集
/*
id name
----------- ----------
23 a10
25 a11
28 a12
30 a13
33 a14
35 a15
38 a16
40 a17
43 a18
45 a19
48 a20
(11 行受影响)
*/
SELECT * --3.根据筛选的条件返回结果集
FROM tb t
WHERE (
SELECT COUNT(1)
FROM tb
WHERE id<= t.id
) --1.括号内代码用来生成从1开始连续的行号
BETWEEN 10 AND 20 --2.根据生成的行号选择从第10条记录开始到第20记录的结果集