oracle怎么限制显示条数据,ORACLE和SYBASE数据库中实现数据查询条数限制的SQL语句实现...

一、概述 对于某些需要通过数据库与大量数据打交道的软件来说,处理性能相当的重要。为了保证软件能够将所有数据处理完而不至于崩溃,分批处理的思想应运而生。

一、概述

对于某些需要通过数据库与大量数据打交道的软件来说,处理性能相当的重要。为了保证软件能够将所有数据处理完而不至于崩溃,分批处理的思想应运而生。分批处理的具体做法是编写SQL语句,每次返回规定条数的数据给软件处理,待这一批数据处理完之后,再接着处理下一批。

本文通过对具体的数据库表(tb_employeeinfo)的操作过程,展示了ORACLE和SYBASE数据库中分批处理SQL语句的编写方法。

二、ORACLE数据库中的处理

首先,建立tb_employeeinfo表,其定义如下:

;

EXCEPTION WHEN OTHERS THEN NULL;

end;

/

create table tb_employeeinfo

(

employeeno varchar2(20)

not null, -- no. of employee

employeename varchar2(20)

not null, -- name of employee

employeeage -- age of employee

);

create unique index idx1_tb_employeeinfo on tb_employeeinfo(employeeno);

prompt 'create table tb_employeeinfo ok';

commit;

接着,在tb_employeeinfo表中插入7条数据,如下:

tb_employeeinfo(employeeno, employeename, employeeage) tb_employeeinfo(employeeno, employeename, employeeage) tb_employeeinfo(employeeno, employeename, employeeage) tb_employeeinfo(employeeno, employeename, employeeage) tb_employeeinfo(employeeno, employeename, employeeage) tb_employeeinfo(employeeno, employeename, employeeage) values('A1006', 'ChenShi', 25);

如果我们想要一次性从tb_employeeinfo表中查询出5条数据,该如何处理呢?

ORACLE数据库中有一个rownum用在查询(select)语句中来限制每次执行之后返回的数据条数。例如,本次要从tb_employeeinfo表中返回5条数据,则编写SQL语句如下:

select employeeno, employeename, employeeage from tb_employeeinfo where rownum<=5;

执行结果如下:

SQL> select employeeno, employeename, employeeage from tb_employeeinfo where rownum<=5;

EMPLOYEENO EMPLOYEENAME EMPLOYEEAGE

A1000

ZhangSan

20

A1001

LiSi

21

A1002

WangWu

21

A1003

ZhouLiu

22

A1004

SunQi

22

三、SYBASE数据库中的处理

首先,建立tb_employeeinfo表,其定义如下:

if exists(select * from sysobjects where name='tb_employeeinfo')

drop table tb_employeeinfo

tb_employeeinfo

(

employeeno varchar(20)

not null, -- no. of employee

employeename varchar(20)

not null, -- name of employee

employeeage -- age of employee

)

index idx1_tb_employeeinfo on tb_employeeinfo(employeeno)

go

print 'create table tb_employeeinfo ok'

go

接着,在tb_employeeinfo表中插入7条数据,如下:

insert into tb_employeeinfo(employeeno, employeename, employeeage) values('A1000', 'ZhangSan', 20)

insert into tb_employeeinfo(employeeno, employeename, employeeage) values('A1001', 'LiSi',

21)

insert into tb_employeeinfo(employeeno, employeename, employeeage) values('A1002', 'WangWu', 21)

insert into tb_employeeinfo(employeeno, employeename, employeeage) values('A1003', 'ZhouLiu', 22)

insert into tb_employeeinfo(employeeno, employeename, employeeage) values('A1004', 'SunQi', 22)

insert into tb_employeeinfo(employeeno, employeename, employeeage) values('A1005', 'LiuBa', 23)

insert into tb_employeeinfo(employeeno, employeename, employeeage) values('A1006', 'ChenShi', 25)

如果我们想要一次性从tb_employeeinfo表中查询出5条数据,该如何处理呢?

在SYBASE数据库中,可以利用“set rowcount X”语句来实现查询条数的限制。例如,本次要从tb_employeeinfo表中返回5条数据,则编写SQL语句如下:

set rowcount 5

select employeeno, employeename, employeeage from tb_employeeinfo

set rowcount 0

执行结果如下:

employeeno

employeename

employeeage

A1000

ZhangSan

20

A1001

LiSi

21

A1002

WangWu

21

A1003

ZhouLiu

22

A1004

SunQi

22

注意,在设置了查询条数为5并查询成功之后,一定要有“set rowcount 0”语句,否则在下次执行的时候,就最多只能返回5条数据。

例如,我们先执行如下语句:

set rowcount 5

select employeeno, employeename, employeeage from tb_employeeinfo

则此时返回的结果与上面一样。

再执行如下语句(本意是要将7条语句都查询出来):

select employeeno, employeename, employeeage from tb_employeeinfo

但此时的结果仍然只返回了5条,与我们的本意不符。

因此,,在SYBASE数据库中,“set rowcount X”语句一定要与“set rowcount 0”语句配对使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值