`

Oracle、Mysql分页 排序

 
阅读更多

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 和 MySQL 都提供了各自的分页解决方案。本文将深入探讨这两种数据库在分页方面的实现方式,并结合源码分析来阐述其工作原理。 Oracle 分页: 1. ROWNUM关键字:Oracle 中最基础的分页方式是通过ROWNUM伪列...

    mySql与oracle分页技术

    本文将深入探讨MySQL与Oracle两种常用的数据库管理系统中的分页技术。 首先,我们来看MySQL的分页技术。MySQL提供了`LIMIT`子句来实现分页查询。`LIMIT m, n`语句用于限制查询结果的数量,其中`m`是起始索引,`n`是...

    两个版本Mysql和Oracle的分页标签

    本主题将深入探讨在MySQL和Oracle这两种流行的数据库管理系统中如何实现分页查询。 首先,我们来看MySQL中的分页查询。MySQL支持使用`LIMIT`和`OFFSET`关键字来实现分页。`LIMIT`用于指定每页显示的记录数,而`...

    用于oracle,mysql,sqlserver,数据库分页联合查询

    本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...

    经典的分页、排序SQL 通用存储过程.rar

    在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、MSSQL、Oracle 分页经典代码集锦及效率分析 #### 一、MySQL 分页查询 在 MySQL 中实现分页查询通常有两种方法:`LIMIT` 和 `NOT IN` 方法。 1. **LIMIT 方法**: ```sql SELECT * FROM book LIMIT M...

    sqlserver,mysql,oracle三种数据库的分页查询

    本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...

    oracle、mysql数据库分页参照.pdf

    以下是针对Oracle、MySQL、SQL Server和DB2这四种常见数据库系统的分页实现方案的详细说明: 1. Oracle数据库: Oracle采用的是ROWNUM伪列来实现分页。以下是一个基本的分页查询示例: ```sql SELECT * FROM ( ...

    数据库分页查询整理(oracle、mysql、SqlServer、access、db2等)

    不同的数据库管理系统(DBMS)有不同的分页查询语句,下面对 Oracle、DB2、SQL Server、MySQL、Access 等数据库的分页查询语句进行了整理。 SQL Server 分页查询 SQL Server 中有两种分页查询方法: 1. 第一种...

    mysql,oracle,sqlserver分页

    ### 数据库分页技术详解:MySQL、Oracle与SQL Server #### Oracle 分页 在Oracle数据库中实现分页功能,主要依赖于`ROWNUM`伪列。`ROWNUM`用于为查询结果集中的每一行分配一个唯一的编号,从1开始递增。通过控制`...

    Oracle中实现MySql中limit+SqlServer分页+分页的存储过程

    本篇文章将探讨如何在Oracle数据库中实现类似MySQL的`LIMIT`分页功能,以及如何模拟SQL Server的分页方式,并介绍`INTERSECT`和`MINUS`这两个SQL运算符。 首先,`INTERSECT`运算符用于找出两个或多个查询结果中的...

    oracle一条sql语句分页

    与MySQL等其他数据库管理系统提供的`LIMIT`或`TOP`等关键字不同,Oracle并没有直接提供这些关键字用于分页。然而,Oracle提供了`ROWNUM`功能,可以通过巧妙运用这一特性来实现分页查询。 #### 1. ROWNUM 的基本介绍...

    mysql oracle和sqlserver分页查询实例解析

    本文将分别介绍MySQL、Oracle和SQL Server三种主流数据库系统的分页查询实现。 首先,MySQL的分页查询非常直观,只需要使用`LIMIT`关键字。基本语法是`SELECT * FROM (query) o LIMIT firstIndex, pageSize`。这里...

    分页语义接口,有mysql的实现

    6. **可扩展性**:良好的分页设计应具备良好的扩展性,能够适应不同的数据库系统(如Oracle、PostgreSQL等)以及不同的分页需求(如无限滚动、懒加载等)。 7. **测试**:项目的描述提到测试已通过,这意味着接口的...

    Oracle实现分页查询的SQL语法汇总

    总结来说,Oracle中实现分页查询有多种方法,无ORDER BY的写法在效率上更优,但无法保证数据的排序。有ORDER BY的写法则可确保排序,但性能较差。在实际应用中,应根据具体需求选择合适的方法,并考虑优化策略,如...

    Oracle到mysql转换的问题总结.doc

    - Oracle 中通常使用 `ROWNUM` 和子查询来实现分页,这比 MySQL 的 `LIMIT` 语句复杂。 5. **函数替换**: - Oracle 的 `TO_CHAR` 和 `TO_DATE` 可以用 MySQL 的 `DATE_FORMAT` 和 `STR_TO_DATE` 替换,注意时间...

    第05章_排序与分页.docx

    在 MySQL 数据库中,排序和分页是两个非常重要的概念。排序是指对查询结果按照一定的规则进行排序,而分页是指将查询结果分成多个页面,以便更好地查看和管理数据。 排序 排序是使用 ORDER BY 子句实现的。ORDER ...

    对Oracle数据库三种分页方法的测试与研究.pdf

    在MySQL数据库中,分页查询相对简单,通过LIMIT关键字即可实现,但在Oracle数据库中,由于没有直接对应的简便语句,通常需要使用多种方法来实现分页功能。 本文主要探讨了Oracle数据库中的三种分页方法:基于ROWNUM...

    mysql、mssql及oracle分页查询方法详解

    本篇文章主要探讨了MySQL、SQL Server以及Oracle这三种主流数据库的分页查询方法。 首先,我们来看MySQL的分页查询。MySQL提供了`LIMIT`关键字来实现分页,主要有以下几种方式: 1. **基础`LIMIT`查询**:`SELECT ...

Global site tag (gtag.js) - Google Analytics