Home  >  Article  >  Database  >  Oracle 分页和排序常用的4条查询语句

Oracle 分页和排序常用的4条查询语句

WBOY
WBOYOriginal
2016-06-07 16:55:48900browse

在Oracle中如何实现分页和排序功能的查询语句?在实现的手法上可能与MS SQL Server有所差异,这主要都是由于两种数据库中对于

  在Oracle中如何实现分页和排序功能的查询语句?在实现的手法上可能与MS SQL Server有所差异,这主要都是由于两种数据库中对于结果行号的处理异同造成的,在MS SQL Server中,可以使用top和ROW_NUMBER()方法的结合来实现,一般写法比较简单,而oracle则有很大的不同,只能通过ROWNUM来实现,我们这里主要说明一下,如何使用ROWNUM来实现一些常用的分页和排序查询,有关ROWNUM的概念,随便搜一下,有很多详细的解释都很清晰,就不赘述了。

  1. 查询前10条记录

  SELECT * FROM TestTable WHERE ROWNUM

  2. 查询第11到第20条记录

  SELECT * FROM (SELECT TestTable.*, ROWNUM ro FROM TestTable WHERE ROWNUM 10

  3. 按照name字段升序排列后的前10条记录

  SELECT * FROM (SELECT * FROM TestTable ORDERY BY name ASC) WHERE ROWNUM

  4. 按照name字段升序排列后的第11到第20条记录

  SELECT * FROM (SELECT tt.*, ROWNUM ro FROM (SELECT * FROM TestTable ORDER BY name ASC) tt WHERE ROWNUM 10

  以上此条语句可能是在查询排序和分页的时候最常用到的语句,其中没有添加条件,因为不影响语句的结构。虽然性能有所影响,但可能只是最内层的查询可能会有多查数据的可能,但对于外层的再排序再选择来说,应该影响很小。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Oracle的dual表作用Next article:CentOS 5.4安装Oracle 10g