Oracle分页 排序
数据库在项目开发中主要承担存储的任务,可以根据查询条件查询想要查询内容。以下是普通的排序查询:
with t as
(
select '北京' name from dual union all
select '天津' from dual union all
select '成都' from dual union all
select '重庆' from dual
)
select name from t order by name ;
可以通过以下代码进行会话修改:
ALTER SESSION SET NLS_SORT='SCHINESE_PINYIN_M';--拼音
ALTER SESSION SET NLS_SORT='SCHINESE_STROKE_M';--按照笔划(第一顺序)、部首(第二顺序)排序
ALTER SESSION SET NLS_SORT='SCHINESE_RADICAL_M';--按照部首(第一顺序)、笔划(第二顺序)排序
或者直接执行以下代码块,查看显示结果
拼音
SELECT name FROM t ORDER BY NLSSORT(name,'NLS_SORT = SCHINESE_PINYIN_M')
笔划
SELECT name FROM t ORDER BY NLSSORT(name,'NLS_SORT = SCHINESE_STROKE_M')
部首
SELECT name FROM t ORDER BY NLSSORT(name,'NLS_SORT = SCHINESE_RADICAL_M')
以下是排序在分页查询中的应用:
*注意*:把表名(INFO),排序字段(name)更改为您要用的表和字段名
1:
select *
from (select A.*, rownum r
from (select *
from INFO ti
order by nlssort(ti.name,
'NLS_SORT=SCHINESE_PINYIN_M')) A
where rownum <= 20) B
where r > 10;
2:
SELECT *
FROM (SELECT A.*, rownum r
FROM (select *
from INFO ti
order by nlssort(ti.name,
'NLS_SORT=SCHINESE_STROKE_M')) A
WHERE rownum <= 20) B
WHERE r > 10;
3:
SELECT *
FROM (SELECT A.*, rownum r
FROM (select *
from INFO ti
order by nlssort(ti.name,
'NLS_SORT=SCHINESE_RADICAL_M')) A
WHERE rownum <= 20) B
WHERE r > 10;
示例:
/*
查询条件为:
当日8点至前一天晚上8点
*/
select
to_date(to_char(sysdate,'yyyymmdd')||' 20:00:00','yyyy-mm-dd hh24:mi:ss'),
to_date(to_char(trunc(sysdate-1),'yyyymmdd')||' 08:00:00','yyyy-mm-dd hh24:mi:ss')
from dual;
select to_char(trunc(sysdate-2),'yyyymmdd')from dual
Mysql
select * from
(
select a.*,rownum rn from
(
select * from testtable
)a where rn<=6
)where rn >3
select * from limit 3,6
SELECT * FROM aricles WHERE category_id = 123 ORDER BY id LIMIT 10000, 10
select b.* from (
select a.*,rownum rn form
(
select * from testtable
) a where rn <=6
) b where rn >3
分享到:
相关推荐
Oracle 和 MySQL 都提供了各自的分页解决方案。本文将深入探讨这两种数据库在分页方面的实现方式,并结合源码分析来阐述其工作原理。 Oracle 分页: 1. ROWNUM关键字:Oracle 中最基础的分页方式是通过ROWNUM伪列...
本文将深入探讨MySQL与Oracle两种常用的数据库管理系统中的分页技术。 首先,我们来看MySQL的分页技术。MySQL提供了`LIMIT`子句来实现分页查询。`LIMIT m, n`语句用于限制查询结果的数量,其中`m`是起始索引,`n`是...
本主题将深入探讨在MySQL和Oracle这两种流行的数据库管理系统中如何实现分页查询。 首先,我们来看MySQL中的分页查询。MySQL支持使用`LIMIT`和`OFFSET`关键字来实现分页。`LIMIT`用于指定每页显示的记录数,而`...
本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...
在MySQL中,一个经典的分页排序存储过程可能如下: ```sql DELIMITER // CREATE PROCEDURE GetPagedSortedData(IN page INT, IN pageSize INT, IN sortColumn VARCHAR(255), IN sortOrder ENUM('ASC', 'DESC')) ...
### MySQL、MSSQL、Oracle 分页经典代码集锦及效率分析 #### 一、MySQL 分页查询 在 MySQL 中实现分页查询通常有两种方法:`LIMIT` 和 `NOT IN` 方法。 1. **LIMIT 方法**: ```sql SELECT * FROM book LIMIT M...
本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...
以下是针对Oracle、MySQL、SQL Server和DB2这四种常见数据库系统的分页实现方案的详细说明: 1. Oracle数据库: Oracle采用的是ROWNUM伪列来实现分页。以下是一个基本的分页查询示例: ```sql SELECT * FROM ( ...
不同的数据库管理系统(DBMS)有不同的分页查询语句,下面对 Oracle、DB2、SQL Server、MySQL、Access 等数据库的分页查询语句进行了整理。 SQL Server 分页查询 SQL Server 中有两种分页查询方法: 1. 第一种...
### 数据库分页技术详解:MySQL、Oracle与SQL Server #### Oracle 分页 在Oracle数据库中实现分页功能,主要依赖于`ROWNUM`伪列。`ROWNUM`用于为查询结果集中的每一行分配一个唯一的编号,从1开始递增。通过控制`...
本篇文章将探讨如何在Oracle数据库中实现类似MySQL的`LIMIT`分页功能,以及如何模拟SQL Server的分页方式,并介绍`INTERSECT`和`MINUS`这两个SQL运算符。 首先,`INTERSECT`运算符用于找出两个或多个查询结果中的...
与MySQL等其他数据库管理系统提供的`LIMIT`或`TOP`等关键字不同,Oracle并没有直接提供这些关键字用于分页。然而,Oracle提供了`ROWNUM`功能,可以通过巧妙运用这一特性来实现分页查询。 #### 1. ROWNUM 的基本介绍...
本文将分别介绍MySQL、Oracle和SQL Server三种主流数据库系统的分页查询实现。 首先,MySQL的分页查询非常直观,只需要使用`LIMIT`关键字。基本语法是`SELECT * FROM (query) o LIMIT firstIndex, pageSize`。这里...
6. **可扩展性**:良好的分页设计应具备良好的扩展性,能够适应不同的数据库系统(如Oracle、PostgreSQL等)以及不同的分页需求(如无限滚动、懒加载等)。 7. **测试**:项目的描述提到测试已通过,这意味着接口的...
总结来说,Oracle中实现分页查询有多种方法,无ORDER BY的写法在效率上更优,但无法保证数据的排序。有ORDER BY的写法则可确保排序,但性能较差。在实际应用中,应根据具体需求选择合适的方法,并考虑优化策略,如...
- Oracle 中通常使用 `ROWNUM` 和子查询来实现分页,这比 MySQL 的 `LIMIT` 语句复杂。 5. **函数替换**: - Oracle 的 `TO_CHAR` 和 `TO_DATE` 可以用 MySQL 的 `DATE_FORMAT` 和 `STR_TO_DATE` 替换,注意时间...
在 MySQL 数据库中,排序和分页是两个非常重要的概念。排序是指对查询结果按照一定的规则进行排序,而分页是指将查询结果分成多个页面,以便更好地查看和管理数据。 排序 排序是使用 ORDER BY 子句实现的。ORDER ...
在MySQL数据库中,分页查询相对简单,通过LIMIT关键字即可实现,但在Oracle数据库中,由于没有直接对应的简便语句,通常需要使用多种方法来实现分页功能。 本文主要探讨了Oracle数据库中的三种分页方法:基于ROWNUM...
本篇文章主要探讨了MySQL、SQL Server以及Oracle这三种主流数据库的分页查询方法。 首先,我们来看MySQL的分页查询。MySQL提供了`LIMIT`关键字来实现分页,主要有以下几种方式: 1. **基础`LIMIT`查询**:`SELECT ...