首页 > 数据库 >oracle 分页 sql

oracle 分页 sql

时间:2023-09-14 12:06:11浏览次数:35  
标签:分页 t2 connect sql oracle root id select name


select * 
from
(select * from (select t.*, rownum linenum from gal_messages t) r where r.linenum <200) a
where a.linenum>100




Note: 一定要给rownum一个别名linenum, 否则r.rownum或a.rownum会出错.



Oracle Connect By用法


参照:[url]http://www.cublog.cn/u1/54706/showart_1711812.html


oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:



select ... from <TableName>
where <Conditional-1>
start with <Conditional-2>
connect by <Conditional-3>
;

<Conditional-1>:过滤条件,用于对返回的所有记录进行过滤。
<Conditional-2>:查询结果重起始根结点的限定条件。
<Conditional-3>:连接条件




数据库表结构如下:



create table t2(
root_id number,
id number,
name varchar(5),
description varchar(10)
);

insert into t2(root_id,id,name,description) values(0,1,'a','aaa');
insert into t2(root_id,id,name,description) values(1,2,'a1','aaa1');
insert into t2(root_id,id,name,description) values(1,3,'a2','aaa2');
insert into t2(root_id,id,name,description) values(0,4,'b','bbb');
insert into t2(root_id,id,name,description) values(4,5,'b1','bbb1');
insert into t2(root_id,id,name,description) values(4,6,'b2','bbb2');



获取完整树:


select * from t2 start with root_id = 0 connect by prior id = root_id;



查询结果: 所有记录



获取特定子树:


select * from t2 start with id = 1 connect by prior id = root_id;



查询结果:


root_id id


0 1


1 2


1 3


select * from t2 start with id = 4 connect by prior id = root_id;



root_id id


0 4


4 5


4 6



如果connect by prior中的prior被省略,则查询将不进行深层递归。


For example:


select * from t2 start with root_id = 0 connect by id = root_id;



root_id id


0 1


0 4



select * from t2 start with id = 1 connect by id = root_id;



root_id id


0 1


标签:分页,t2,connect,sql,oracle,root,id,select,name
From: https://blog.51cto.com/u_16261339/7468602

相关文章

  • Lucene分页方式(转)
    推荐的做法是为每一次分页导航都执行一次新的查询。因为Hits中保存的并不是真正的Document,因此可以通过HIts.doc(index)的方式取出在一定范围内的Document。在获得Hits后可以用类似下面的方法进行分页处理:privateListprocessHits(Hitshits,intstartIn......
  • mysql 的用法
    MySQL是一个由瑞典MySQLAB公司开发的关系型数据库管理系统,属于Oracle旗下产品。它是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS应用软件之一。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL......
  • MySQL 和 Python:无缝结合的数据库应用
    MySQL和Python都是广泛应用于软件开发的重要工具。MySQL是一种强大的关系型数据库管理系统,而Python则是一种灵活的高级编程语言。它们之间的紧密集成为开发人员提供了强大的数据存储和操作能力。本文将探讨MySQL和Python之间的关系,并提供一些示例代码来演示如何在Python......
  • MySQL体系架构
    1.背景刚入行时,大部分Java工程师对MySQL停留在一个黑盒的认识,包括我自己。最近一段时间,这几年通过项目实践与不断反思,对MySQL的新认知提升到一个新层次,供大家分享。下图是初始阶段的认识,就是对数据库建库、建表、建索引,然后执行增删改查操作。2.数据库驱动大家都知道,我们如......
  • Mysql 主从复制
    一、设计思路准备两个5.7版本的MySQL,一个用作主数据库,另一个用作从数据库。把主数据库做为写入数据库,从数据库作为读数据库。二、具体步骤准备两台数据库,可以本地配置两台Mysql数据库或者局域网两台Mysql数据库。1.先把你的mysql目录拷贝复制一份,复制出来的那份取名为mysql-......
  • MySQL DateTime 可以支持到毫秒
    DATETIMEDATETIME在数据库中存储的形式为:YYYY-MM-DDHH:MM:SS,固定占用8个字节。从MySQL5.6版本开始,DATETIME类型支持毫秒,DATETIME(N)中的N表示毫秒的精度。例如,DATETIME(3)表示可以存储3位的毫秒值。 推荐使用 DATETIME而非timestamp,因为 timestamp可能有......
  • Mysql慢查询优化
    Mysql慢查询优化实战效果:效率提升十倍左右优化前mysql>usetest_old;Databasechangedmysql>setprofiling='ON';QueryOK,0rowsaffectedmysql>showvariableslike'profiling';+---------------+-------+|Variable_name|Value|+--------......
  • sql入参
    Dapper sql入参 //防SQL注入攻击varparms=new{userId=userId,pwd=pwd};//DynamicParametersparms=newDynamicParameters();//parms.Add("userId",us......
  • mysql错误记录 - 关键字generated
    今天想直接操作flowable的表ACT_GE_BYTEARRAY表字段如下字段名字段含义ID表示唯一标识符的字符串,用于标识每个字节数组。REV_表示字节数组的版本号。NAME_表示字节数组的名称。DEPLOYMENT_ID_表示字节数组所属的部署ID。BYTES_表示存储在数据库中的字......
  • mysql 找不到配置文件?&如何解决Mysql自动关闭?
    解决Mysql安装之后没有my.ini配置文件问题:https://www.likecs.com/show-307410314.html如何解决MySQL自动关闭的问题(mysql一直自动关闭):https://www.dbs724.com/254927.htmlhttps://www.cnblogs.com/wl-blog/p/14917217.html......