oracle分页就用这一句
分页的宗旨是控制查询出来的数据个数,下面这条语句对于Oracle分页已经足够了。
(注:该语句只能用于Oracle)
SELECT * from (SELECT temp.*, ROWNUM RN from (SELECT * from USERS ORDER BY ID DESC) temp) WHERE RN > 0 AND RN <= 10
SELECT *
from (SELECT AA.*, ROWNUM RN
from (SELECT * from USERS ORDER BY ID DESC) AA)
WHERE RN > 0 AND RN <= 10
说明:
其中USERS为数据库表名
SELECT * from USERS ORDER BY ID DESC
这一句是不进行分页的查询。
而ROWNUM <= 10和RN >0用于控制每页要显示的数据条数,我这里用ROWNUM <= 10和RN >0表示每页显示10条数据,那么要进入下一页,则ROWNUM <= 20和RN >10
上面的这两个数值只需要你在程序中动态传入值,例如在struts或servlet中动态传入两个参数就可以进行分页控制。
MSSQL SYBASE下面用top 来分页
POSTGRESQL MYSQL就直接用limit更简单了
在oracle 下面有4种方法
oracle分页技术2007年08月13日 星期一 23:08两种分页技术,第二种效率高多了
1. select * from
(select rownum rn,t.* from table t )
where rn <50 and rn>=1
2. select * from
(select rownum rn,t.* from table t rownum<50)
where rn>=1
带排序要求的分页,在9i以上的环境推荐使用分析函数
select * from
(select row_number() over(order by esn) rn,esn,akey from as_esn_info )
where rn <50 and rn>=1
(以上方法验证过)
或者以下
(1)minus差分页 :select * from table where rownum<=10 minus select * from table where rownum<=5
(2)rownum伪列分页 :select * from (select rownum tid,t.* from table t where rownum<=10) where tid>5
(3)notin相反分页:select * from table where id not in(select id from table where rownum<=5) and rownum<=5
相关文档:
在一个表中,其中几个字段的值是一样的,按照这几个字段进行分组并合并数据。
表A id name role
1 张三 &nb ......
一、索引类型及结构:
oracle的索引分为5种:唯一索引,组合索引,反向键索引,位图索引,基于函数的索引
逻辑上:
Single column 单列索引
Concatenated 多列索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函数索引
Domain 域索引
物理上:
Partitioned 分区索引
NonPartitioned ......
ORACLE里锁有以下几种模式:
0:none
1:null 空
e.g. 1级锁有:Select,有时会在v$locked_object出现。
2:Row-S 行共享(RS):共享表锁,sub share
e.g. 2级锁有:Select for update,Lock For Update,Lock Row Share
  ......
一、设置初始化参数 job_queue_processes
sql> alter system set job_queue_processes=n;(n>0)
job_queue_processes最大值为1000
查看job queue 后台进程
sql>select name,description from v$bgprocess;
二,dbms_job package 用法介绍
包含以下子过程:
......