发布网友 发布时间:2022-04-07 15:05
共6个回答
热心网友 时间:2022-04-07 16:34
这好办,比如查询第10条到第20条数据,表是table1,列是lie1,lie2,那就是热心网友 时间:2022-04-07 17:52
不同的数据库, 写法不一样。 例如我要检索 第11条到第20条追答你要实现那个 物理行的顺序, 也就是 不按任何字段排序的话. 那么要用 RowNumber 了。
如果你的数据库, 还是 Access,或者 SQL Server 2000 那就没办法了。
CREATE TABLE #temp (
id INT
);
GO
INSERT INTO #temp
SELECT 1 UNION ALL
SELECT 3 UNION ALL
SELECT 5 UNION ALL
SELECT 7 UNION ALL
SELECT 9 UNION ALL
SELECT 2 UNION ALL
SELECT 4 UNION ALL
SELECT 6 UNION ALL
SELECT 8 UNION ALL
SELECT 0 UNION ALL
SELECT 11 UNION ALL
SELECT 13 UNION ALL
SELECT 15 UNION ALL
SELECT 17 UNION ALL
SELECT 19 UNION ALL
SELECT 12 UNION ALL
SELECT 14 UNION ALL
SELECT 16 UNION ALL
SELECT 18 UNION ALL
SELECT 10 UNION ALL
SELECT 21 UNION ALL
SELECT 23 UNION ALL
SELECT 25 UNION ALL
SELECT 27 UNION ALL
SELECT 29 UNION ALL
SELECT 22 UNION ALL
SELECT 24 UNION ALL
SELECT 26 UNION ALL
SELECT 28 UNION ALL
SELECT 20
GO
SELECT
id
FROM
(
SELECT
row_number() OVER (order by (select 1)) AS no,
id
FROM #temp
) t
WHERE
no >= 11 AND no <=20
GO
id
-----------
11
13
15
17
19
12
14
16
18
10
(10 行受影响)
下面这种写法,速度上慢点,但是结果和上面的一样。
SELECT
top 10
*
FROM
#temp
WHERE
id NOT IN (SELECT top 10 id FROM #temp)
GO
热心网友 时间:2022-04-07 19:27
select top 20 from table1 where lie1 not in(select top 10 lie1 from table1)追答假设你的排序字段是lie1
select top 20 from table1 where lie1 not in(select top 10 lie1 from table1 order by lie1) order by lie1
而且lie1是不重复的。
热心网友 时间:2022-04-07 21:18
select * from (select *, rownum rowid from tablename where rownum<20)热心网友 时间:2022-04-07 23:26
有个热心网友 时间:2022-04-08 01:51
没有第几条到第几条吧,只有前几条吧,用TOP试试