Oracle排序】的更多相关文章

刚刚写的SQL语句在执行的时候报[ORA-01785: ORDER BY item must be the number of a SELECT-list expression]错误,于是自己百度了一下相关错误,发现是和Oracle排序语句的特殊写法有关系,这里记录一下. 先不说错误的问题,我们先用常规的写法写一句带排序子句的SQL语句. SELECT ID, CODE, NAME FROM STUDENT ORDER BY CODE; 这样写是能够正常执行的. 然后说一下排序子句的特殊写法.特…
1.ORDER BY 中关于NULL的处理 缺省处理,Oracle在Order by 时认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前. 当然,你也可以使用nulls first 或者nulls last 语法来控制NULL的位置. Nulls first和nulls last是Oracle Order by支持的语法 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc) 如果Order by 中…
1.rownum和排序 Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了. SQL> select rownum ,id,name from student order by name; ROWNUM ID      NAME 3 200003 李三 2 200002 王二 1 200001 张一 4 200004 赵四 可以看出,rownum并不是按照name列来生成的序号.系统是按照记录插入时的顺序给记录排的号,rowid…
在今天项目开发中,遇到一个奇怪的问题,运用Oracle自身排序,然后将排序结果进行分页展示到前台时,发现数据有重复的现象. 这是数据表需要排序的全部结果,执行脚本:select * from ajb where ajlx='刑事案件' order by ajlx asc 结果展示为: 获取结果集的前13页,sql脚本如下: select * from (select * from ajb where ajlx='刑事案件' order by ajlx asc) where rownum<=13…
在Oracle自拓展SQL功能中,分析函数(Analytical Function)是非常强大的工具. 本篇我们介绍几个Oracle典型的排序分析函数,来帮助我们解决实际问题. 1.从rownum谈起 选择Oracle 11gR2进行测试 基础表EMP,并对字段 sal 排序 常见的功能需求,是先用order by排序,之后用rownum从1开始标记.但是,rownum往往不会像我们希望的如此工作. 最后的数据集合,的确是按照我们希望的sal排序动作结果.但是rownum并没有按照我们希望的出现…
ORACLE中null的排序问题 关键字: oracle nulls 问题描述:    在平时的业务处理中,经常遇到要对业务数据进行排序,并且要对null值也做相应的排序.在Oracle中,进行Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前.有的时候我们需要在降序排列时,同时要将null的 数据排到最后,应该如何处理. 问题处理:方法1:使用nvl函数语法:Nvl(expr1, expr2)    若EXPR1是NULL,則返回EXPR…
一.中文排序      1. 按照笔划排序       select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M'); 2. 按照部首排序       select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M'); 3. 按照拼音排序,此为系统的默认排序方式       select * from dept order by nlsso…
oracle表字段设置得值不是number,而是Varchar2时排序就会出现这种问题 这个时候排序的时候需要转类型排序: order by to_number(顺序号) asc…
-原理 Nulls first和nulls last是Oracle Order by支持的语法 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc) 如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc) 使用语法如下: --将nulls始终放在最前 select * from zl_cbqc order by cb_ld nulls first   --将n…
我们都知道分析函数功能很强大,可能需要写很复杂的标准SQL才能办到或不可能办到的事,使用分析函数却能很容易完成.我们经常会用到排序分析函数,如ROW_NUMBER,RANK,DENSE_RANK.这三个函数都是排序函数,那么有什么不同呢,下面看个例子: SQL> select empno, 2 ename, 3 deptno, 4 sal, 5 row_number() over(partition by deptno order by sal) sql_rownum, 6 rank() ove…