ORACLE分页查询

先看SQL语句

create table USERS
(USER_ID       VARCHAR2(10) primary key not null, --登录名USER_NAME     VARCHAR2(20) not null,--用户名(昵称)USER_PASSWORD      VARCHAR2(20) not null,--密码USER_SEX           VARCHAR2(2) not null,--性别USER_BIRTHDAY      DATE,--生日USER_IDENTITY_CODE VARCHAR2(60),--身份证号USER_EMAIL         VARCHAR2(80),--emailUSER_MOBILE        VARCHAR2(11),--电话USER_ADDRESS       VARCHAR2(200),--地址USER_STATUS        NUMBER(6) not null--用户权限状态,1普通用户  2管理员
);

一,SQL语句的伪列ROWNUM, ROWID
code1

SELECT ROWNUM, ROWID FROM USERS

结果如下,rownum是Oracle在查询完表后生成的一个有序列,从1开始。而rowid
好像没什么用,对开发来说。
result
code2

SELECT ROWNUM, EU.* FROM USERS EU WHERE ROWNUM > 1

额,这样的where查是没得结果的,因为ROWNUM 是从1开始,是个动态的值,即伪列,在一个查询当中大于是无效的。只有ROWNUM >= 1才有用。

code3

-- RN 标识符无效
SELECT ROWNUM RN, EU.* FROM USERS EU WHERE RN <= 3

rn是生成的字段,本身不确定,做条件会错。

code4

SELECT * FROM 
(SELECT ROWNUM RN, EU.* FROM USERS EU WHERE ROWNUM <= 3
)
WHERE RN > 0

这是查EASYBUY_USER 前面3行的数据。ROWNUM 在一个select里面写 > 就没用了, 所以把括号里面的sql当作一个表,再查,RN也可使用了。

code5

SELECT * FROM 
(SELECT ROWNUM RN, EU.* FROM (SELECT * FROM USERS) EU WHERE ROWNUM <= 3
)
WHERE RN > 0

这个也是有3个查询,只不过,第三个查询可以多写条件。比如按出生查。

Oracle的分页不必mysql有limit关键字 和 SQL server的top关键字,但是搞懂原理,还是简单的,条件就是 页数每页要查几行数据 这两个变量的关系。

数据库的代码

	// 分页查询用户信息 pageNo 页数  pageSize 每页的行数public List<USERS> selectUserInfo(int pageNo, int pageSize) {List<USERS> list = new ArrayList<USERS>();StringBuffer sql = new StringBuffer();sql.append("SELECT * FROM");sql.append("(");sql.append("SELECT ROWNUM RN, EU.* FROM  USERS EU WHERE ROWNUM <= ?");sql.append(")");sql.append("WHERE RN > ?");Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {conn = BaseDao.getConn();ps = conn.prepareStatement(sql.toString());ps.setInt(1, pageNo * pageSize);ps.setInt(2, (pageNo - 1) * pageSize);rs = ps.executeQuery();while (rs.next()) {Users users = new Users();user.setUserId(rs.getString("USER_ID"));user.setUserName(rs.getString("USER_NAME"));user.setUserPassword(rs.getString("USER_PASSWORD"));user.setUserSex(rs.getString("USER_SEX"));list.add(users);}} catch (SQLException e) {e.printStackTrace();} finally {BaseDao.release(conn, ps, rs);}return list;}

BY MYSELF STUDY, 2020/3/14, FOR MY PROJECT.

更新…

  • 下面的查法,改变表名即可
select * from (select tab1.*, rownum as rn from (select * from users) tab1) tab2where rn between ? and ?
  • 设置页数和行数
ps.setInt(params.size() + 1, (pageNo - 1) * pageSize + 1);
ps.setInt(params.size() + 2, pageNo * pageSize);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 谈this

1&#xff09;当在全局作用域下&#xff0c;执行一个函数fun()&#xff0c;局部变量的作用域为该函数&#xff0c;this指向window&#xff0c;实际上相当于执行window.fun()&#xff1b; 2&#xff09;当函数前面加一个对象&#xff0c;利用obj1.fun(),则在fun函数内部&#xf…

实验14:访问CMOS RAM显示当前日期和时间

下面的代码实现的功能是实时的显示时间&#xff0c;显示的效果就如同一个电子时钟&#xff0c;这个代码来自于“网易云课堂”讲汇编的一位老师&#xff08;从0开始&#xff0c;讲的非常的好&#xff09;&#xff0c;这段代码老师写的太好了&#xff0c;贴在下面学习效仿一下&am…

前端学习(1047):todolist删除数据2

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title><script src"…

网页里面的下拉框与数据库交互

对于常用的表单来说&#xff0c;用value取值居多。 而下拉框这个神圣&#xff0c;常用的东西&#xff0c;与servlet交互&#xff0c;就常见啦。 核心就是下拉框的文本改变事件 和 js相结合来传值啦 下面是一个小demo&#xff0c;一个分页的小demo&#xff0c;下拉框绑定了页数。…

C#基础 基本语法4

1、除了基本的OOP技术&#xff0c;还要熟悉一些比较高级的技术。集合、比较、转换。System.Collections名称空间中的几个接口提供了基本的集合功能。IEnumberable;ICollection;IList;IDictionnary2、ArrayList animalArrayListnew ArrayList(); ------------------------------…

实验15 安装新的int 9中断例程

这个实验综合了外中断&#xff0c;内中断&#xff0c;应该是全书最精华的一个实验&#xff0c;常常思考整个程序的流程&#xff0c;指导这个流程觉得熟悉、自然。 代码如下&#xff1a; assume cs:code, ss:stackstack segmentdb 128 dup(0) stack endscode segment start:mov…

前端学习(1048):todolist正在进行和已经完成阶段

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title><script src"…

一个web版的计算器

非小白勿入&#xff01;&#xff01;&#xff01; emmmm&#xff0c;最近写js作业复习题&#xff0c;有个计算器的题目&#xff0c;我就拿来啦&#xff0c;哈哈哈。 想着html也是一种良好的界面嘛&#xff0c;还可以手动改变(js)&#xff0c;哈哈哈&#xff0c;就有此了。 关键…

JavaScript之常用方法讲解

1.indexOf() 定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 语法 stringObject.indexOf(searchvalue,fromindex) 参数描述searchvalue必需。规定需检索的字符串值。fromindex可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 …

实验16 编写包含多个功能子程序的中断例程

本实验是本书的第二个精华的实验。到此可以总结&#xff0c;汇编的重点在于跳转&#xff0c;这里的跳转包括jmp&#xff0c;call&#xff08;调用&#xff09;&#xff0c;int&#xff08;中断&#xff09;&#xff0c;这反映到操作系统上就是调用&#xff0c;线程、进程的切换…

前端学习(1049):todolist正在进行和已经完成阶段2

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title><script src"…

终于学会上传图片了\( ̄︶ ̄*\))

actionbigItem要点使用smartupload jar 包html 表单提交数据有三种类型的提交bigItem 做项目&#xff0c;发现了一个技术难点。 要上传图片到服务器。 要点 1&#xff0c;smartupload jar 包下载。 2&#xff0c;部署jar包 使用smartupload jar 包 Jsp页面操作 <html…

逐个字符输出

num raw_input(input is : )#用户输入for i in range(len(num)): #循环取字符输出 print num[i] for i,ch in enumerate(num):#使用enumerate&#xff08;&#xff09;函数 print ch 转载于:https://www.cnblogs.com/timp/p/3652972.html

x86从实模式到保护模式实验说明

在做完王爽《汇编语言》所有实验后&#xff0c;到这里进入到操作系统的层面了。作为一个数学系的研究生自学计算机&#xff0c;摸索了很长时间后&#xff0c;感觉一个靠谱的路线是&#xff1a;先学会一门语言对计算机有一个感觉&#xff0c;能做点事情--》再学点数据结构&#…

前端学习(1050):todolist正在进行个数和已完成个数

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title><script src"…

第一次体验python有感

python解释器python学习工具pycharmpython的类库&#xff08;numpy matplotlib&#xff09; python是一门动态型的语言&#xff0c;无需变量&#xff0c;有值&#xff0c;它自动确认变量&#xff0c;类库及其强大&#xff0c;丰富&#xff0c;几句代码&#xff0c;便可做出东西…

SQL - 将NULL设置为 NOT NULL

在有些时候&#xff0c;我们在创建表的时候&#xff0c;会忘掉设置某一个列的属性&#xff0c;比如忘了设置为非空&#xff0c;但是默认情况下系统会自动的设置为NULL。这样我们该怎样通过语句设置呢&#xff1f;&#xff1f; 例如有一个表&#xff0c;其中的一个属性为WM CHAR…

第三章 汇编语言和汇编软件

本章的实验的主要任务是安装NASM这个软件&#xff0c;在安装的时候有一个重要的一点就是软件版本要严格按照书中的要求&#xff0c;虽然作者说过可以下载更新的版本&#xff0c;但是实践表明会出现各种莫名的错误&#xff0c;书中的所有软件都可以在网上很容易找到☺&#xff0…

第四章 虚拟机的安装和使用

本章的主要是用virtualBox创建一个虚拟机&#xff0c;创建的过程基本上和书上的一样&#xff0c;有个别不一样的地方也不难&#xff0c;百度一下就知道了。 最后测试自己的虚拟VHD硬盘是否安装成功的方法&#xff1a; 1&#xff0c;用fixvhdwr.exe打开自己创建的虚拟硬盘Kong…

数据结构的介绍

数据结构逻辑结构集合线性结构树形结构图形结构数据的储存结构顺序储存结构链式储存结构索引储存结构散列储存结构数据的操作数据结构分为 逻辑&#xff0c;储存&#xff0c;数据的操作。逻辑结构 是指数据间存在的逻辑关系&#xff0c;与数据的储存无关。 两个要素组成&#…