oracle分页查询并按照某字段进行排序的数种解决方案
方案一(对于大数据集, 会明显的影响查询效率):
SELECT *
from(
SELECT ROWNUM RN,TA.*
from(
select t.id ID, o.name YYB,u.name XM, t.MC
from tZDYSX t,tuser u,lborganization o
where t.cjr=u.id and u.orgid=o.orgcode and t.gx = 1 order by t.ID
)TA WHERE ROWNUM <= 20
)WHERE RN > 10
方案二(先选再排序, 不推荐使用):
select * from tablename
where …
and rownum<10
minus
select * from tablename
where …
and rownum<5
order by name
或写为如下形式(速度更快)
select * from (
select rownum r,a from yourtable
where rownum <= 20
order by name )
where r > 10
方案三(效率最高,推荐用此方案):
select * from (select row_number() over (order by sign_time desc) as rownumber, id, signer_name, sign_time from b_sign_product)
where rownumber between 11 and 20
相关文档:
本系列文章导航
[Oracle]高效的PL/SQL程序设计(一)--伪列ROWNUM使用技巧
[Oracle]高效的PL/SQL程序设计(二)--标量子查询
[Oracle]高效的PL/SQL程序设计(三)--Package的优点
[Oracle]高效的PL/SQL程序设计(四)--批量处理
[Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
[Oracle]高效的PL/SQL程序设计(六)- ......
SQL*PLus> desc emp;
名称 &nbs ......
问题一:如保加载JDBC驱动程序:
正常我们加载驱动程序有三个途径:
1.Class.forName(String)这想当于classLoader一个String指定的类,在装载时把该驱动程序的静态内容都初始化,其实这时驱动程序类调用了DriverManager.registerDriver(driver)方法。
2.使用系统属性:System.getPro ......
update :单表的更新不用说了,两者一样,主要说说多表的更新
Oracle> Oracle的多表更新要求比较严格,所以有的时候不是很好写,我们可以试试Oracle的游标
&n ......
一 在Oracle中连接数据库
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
&nbs ......