oracle排序问题

表格test数据

select * from test order by name desc

结果:

1-1:select * from ( select A.*,rownum rn from test A order by name asc ) where rn between 0 and 10

结果:

1-2:select * from ( select A.*,rownum rn from test A order by name desc ) where rn between 0 and 10

结果:

2-1:select A.*,rownum from test A where rownum between 0 and 10 order by name desc

结果:

2-2:select A.*,rownum from test A where rownum between 0 and 10 order by name asc

结果:

3-1:select * from ( select A.*,Row_Number() OVER (order by name desc) as rn from test A ) where rn between 0 and 10

结果:

3-2:select * from ( select A.*,Row_Number() OVER (order by name asc) as rn from test A ) where rn between 0 and 10

结果:

 结论:第三种查询语句是先排序后取数据,而前面两种是先取数据后查询,对于不是主键的字段。

时间: 2024-08-28 21:15:29

oracle排序问题的相关文章

Oracle DISTINCT A 排序问题(转)

请问Oracle 中有ID,A栏要怎么读出栏的不重复值,并且用ID来排序,請大家帮帮忙? 解决方案: ID | A 1 | x 2 | y 3 | x A栏的不重复值: x, y 但用ID來排序时 x 的 ID 应用 1 or 3 所以Oracle 不接受 select distinct A from table order by ID 可以试试 group by 例 以最小ID值排序 SELECT A FROM table GROUP BY A ORDER BY MIN(ID) 原理解释,由于

oracle的中文排序问题

mysql中文排序有convert(name using gbk)这样的函数,于是研究了一下oracle中文排序: 使用拼音排序 SQL> select * from chineseordertest order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M'); NAME ---------------------------------------- A语言 汉文 日文 中文 使用笔画排序 SQL> select * from chineseord

oracle行号排序问题

1.创建一个student,并且插入数据 create table student(name varchar(12),age int) insert into student values('z1','1'); insert into student values('z2','6'); insert into student values('z3','2'); insert into student values('z4','3'); insert into student values('z5

Oracle varchar 字段排序问题

数据库字段: 想要的结果: 实际查询的结果: 解决方法:使用CAST函数把varchar2转为int类型 order by CAST(CODE AS INTEGER)

Oracle之视图联合查询加排序问题

在公司修改bug,有这样的需求:需要从两张视图中查出相同字段的数据,按照导师姓名先排序,再按照学号排序 union联合两张表,SELECT * from((SELECT DS_ID,PYLX_ID,YX_ID,DS_XM,XH,XM FROM PY_VIEW_YJSXX WHERE ID IN ('720c8511d1994434a55dae6f545652bc') )UNION ALL(SELECT DS_ID,PYLX_ID,YX_ID,DS_XM,XH,XM FROM PY_VIEW_ZJ

【ORACLE】特殊的NULL

NULL 是数据库中特有的数据类型 Oracle 中对空的描述 nullAbsence of a value in a column of a row. Nulls indicate missing, unknown, or inapplicable data. 当一条记录的某个列为 NULL ,则表示这个列的值是未知的.是不确定的既然是未知的,就有无数种的可能性. 因此, NULL 并不是一个确定的值 -- 判断一个列为空 SELECT * FROM CUSTOMEREN C WHERE C.

oracle sql 语句 示例

--oracle 用户对象的导入导出 exp devimage/[email protected]/TESTDB owner='devimage' file=d:/devimage.dmp log=d:/devimage.log imp wxtest5star03/[email protected]/orcl FROMUSER='devimage' TOUSER='wxtest5star03' FILE=D:/devimage.dmp log=d:/wxtest5star03.log IGNOR

Oracle 11g 学习3——表空间操作

一.表空间概述 表空间是Oracle中最大的逻辑存储结构,与操作系统中的数据文件相对应: 基本表空间:一般指用户使用的永久性表空间,用于存储用户的永久性数据 临时表空间: 主要用于存储排序或汇总过程中产生的临时数据: 大文件表空间:用于存储大型数据(例如LOB) 非标准数据块表空间:用于在一个数据库实例中创建数据块大小不同的表空间: 撤销表空间:用于存储事务的撤销数据,在数据恢复时使用. 二.创建表空间 语法: CREATE [ TEMPORARY | UNDO ] TABLESPACE tab

Oracle分页排序的实现与分页数据重复问题

对于关系数据库来说,直接写SQL拉数据在列表中显示是很常用的做法.但如此便带来一个问题:当数据量大到一定程度时,系统内存迟早会耗光.另外,网络传输也是问题.如果有1000万条数据,用户想看最后一条,这时即便有足够的内存,在网络上传输这么多数据也得一两小时吧,恐怕没几个用户有这么耐心等.因此分页是必须的. 现在网上的论坛.博客什么的,基本上都会有分页功能,有些是SQL分页的,有些可能是NOSQL用其它方法分页,都有很成熟的东西了.本文根据我自己的经验,以ORACLE为例,讲下简单的SQL分页和排序