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;
每种数据库都有方法,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