SQL查询语句怎样限定返回结果集的行数

2024-12-01 08:33:02
推荐回答(2个)
回答1:

1、创建测试表,create table test_rows(id number, value varchar(200));

2、插入测试数据,

insert into test_rows

select level, 'val_'||level from dual 

connect by level<1000;

commit;

3、查询表中记录数,总共有999条,

4、编写sql,返回最小的10条记录,

select * from (select t.*, row_number() over(order by id) rn from test_rows t ) where rn=10;

回答2:

每种数据库都有方法,Oracle在查询结果可以限定rownum<= 某个数,来限定输出,SQL Server更加简单,操作方法有下面两种
rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例,
set rowcount 10
select * from 表A

这样的查询只会返回表A中的前10条数据。它和 "select top 10 * from 表A" 的作用一样。注意一点,set rowcount 的设置会在整个会话中有效。比如下面的sql示例:

set rowcount 10
select * from 表A
go
select * from 表B