sql基础知识:分页+排序

Oracle的分页还真是挺恶心地,不像mysql直接Limit就搞定

select name from student limit 0,20;

Oracle需要借助rownum实现:

select *
    from (
        select s.*, rownum as rn from student s where rownum <= 10
    ) m
 where m.rn > 0

如果要增加排序,可以引入order by

select * from (
    select c.*, rownum as rn from (
        select rownum as row_num, b.* from (
            select * from student
            --这里可以写复杂的join逻辑
        ) b
        order by b.storecode desc
    ) c
    where rownum <= 10
) m
where m.rn > 0

本文转自博客园xingoo的博客,原文链接:sql基础知识:分页+排序,如需转载请自行联系原博主。

时间: 2024-10-22 02:16:39

sql基础知识:分页+排序的相关文章

sql基础知识:日期的常用用法

日期操作 select sysdate,add_months(sysdate,12) from dual; -- + 1 year select sysdate,add_months(sysdate,1) from dual; -- + 1 month select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; -- + 1 week select sysdate,to_char(sysdate+1,'yyyy-mm-

SQL学习笔记一SQL基础知识

常用字段类型bit(0和1),datetime,int,varchar,nvarchar(可能含有中文用nvarchar) Varchar,nvarchar和char(n)的区别char(n)不足长度n的部分用空格填充. SQL语句中,字符串用单引号. SQL语句大小写不敏感.不敏感是指SQL的关键字,字符串值还是敏感的. 简单的INSERT语句 INSERT INTO Person(Id,Name,Age) VALUES(1,'Jim',20) 常用int和uniqueidentifier做主

SQL基础--&amp;gt;过滤和排序

--======================================= --SQL基础-->过滤和排序 --======================================= /* 一.使用WHERE字句实现对数据的过滤     用法:SELECT *|{[DISTINCT] column|expression [alias],...}           FROM table           [WHERE condition(s)]; 二.多条件连接     AND

SQL 基础--&amp;gt;常用函数

--================================== --SQL 基础-->常用函数 --================================== /* 一.函数的分类     SQL函数一般分为两种     单行函数 基于单行的处理,一行产生一个结果     多行函数 基于多行的处理,对多行进行汇总,多行产生结果   二.函数形式     function_name [(arg1, arg2,...)]   三.常用的单行函数:  1. 字符函数:     lo

SQL基础--&amp;gt;多表查询

--========================== --SQL基础-->多表查询 --========================== /* 一.多表查询     简言之,根据特定的连接条件从不同的表中获取所需的数据       笛卡尔集的产生条件:        省略连接条件        连接条件无效        第一个表中的所有行与第二个表中的所有行相连接             二.多表查询语法:*/     SELECT table1.column, table2.colu

SQL 基础--&amp;gt; 子查询

--========================= --SQL 基础--> 子查询 --=========================     /* 一.子查询     子查询就是位于SELECT.UPDATE.或DELETE语句中内部的查询     二.子查询的分类     单行子查询         返回零行或一行     多行子查询         返回一行或多行     多列子查询         返回多列     相关子查询         引用外部SQL语句中的一列或多列  

SQL基础--&amp;gt;层次化查询(START BY ... CONNECT BY PRIOR)

--====================================================== --SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR) --======================================================       层次化查询,即树型结构查询,是SQL中经常用到的功能之一,通常由根节点,父节点,子节点,叶节点组成,其语法如下:        SELECT [LEVEL] ,col

SQL基础--&amp;gt;分组与分组函数

--================================= --SQL基础-->分组与分组函数 --================================= /* 一.分组:     分组函数可以对行集进行操作,并且为每组给出一个结果.    使用group by column1,column2,..按columm1,column2进行分组,即column1,column2组合相同的值为一个组   二.常用分组函数: */     AVG([DISTINCT|ALL]n)

SQL 基础--&amp;gt; 集合运算(UNION 与UNION ALL)

--============================================= -- SQL 基础--> 集合运算(UNION 与UNION ALL) --=============================================       集合运算操作符可以将两个或多个查询返回的行组合起来,即集合属于纵向连接运算   一.常用的集合运算符     UNION ALL 返回各个查询检索出的所有的行,不过滤掉重复记录     UNION     返回各个查询检索出