`

oracle中对排序的总结

阅读更多
转自:http://database.ctocio.com.cn/433/9328433.shtml

  -- 按拼音排序 (系统默认)
  select * from perexl order by nlssort(danwei,'NLS_SORT=SCHINESE_PINYIN_M');
  -- 按部首排序
  select * from perexl order by nlssort(danwei,'NLS_SORT=SCHINESE_STROKE_M');
  -- 按笔画排序
  select * from perexl order by nlssort(danwei,'NLS_SORT=SCHINESE_RADICAL_M');
  --排序后获取第一行数据
  select * from (select * from perexl order by nlssort(danwei,'NLS_SORT=SCHINESE_PINYIN_M') )C where rownum=1
  --降序排序
  select * from perexl order by zongrshu desc
  --升序排序
  select * from perexl order by zongrshu asc
  --将nulls始终放在最前
  select * from perexl order by danwei nulls first
  --将nulls始终放在最后
  select * from perexl order by danwei desc nulls last
  --decode函数比nvl函数更强大,同样它也可以将输入参数为空时转换为一特定值
  select * from perexl order by decode(danwei,null,'单位是空', danwei)
  -- 标准的rownum分页查询使用方法
  select *from (select c.*, rownum rn from personnel c)where rn >= 1and rn <= 5
  --在oracle语句rownum对排序分页的解决方案
  --但是如果, 加上order by 姓名 排序则数据显示不正确
  select *from (select c.*, rownum rn from personnel c order by 出生年月)where rn >= 1and rn <= 5
  --解决方法,再加一层查询,则可以解决
  select *from (select rownum rn, t.*from (select 姓名, 出生年月 from personnel order by 出生年月 desc) t)where rn >= 1and rn <= 5
  --如果要考虑到效率的问题,上面的还可以优化成(主要两者区别)
  select *from (select rownum rn, t.*from (select 姓名,出生年月 from personnel order by 出生年月 desc) t where rownum <= 10) where rn >= 3
  --nvl函数可以将输入参数为空时转换为一特定值,下面就是当单位为空的时候转换成“单位是空”
  select * from perexl order by nvl(danwei,'单位是空')
分享到:
评论

相关推荐

    oracle排序

    oracle中对排序的总结

    oracle sql 排序

    总结三种排序方式的共同点和不同点,已经排除空值后排序的oracle语句用法

    ORACLE重建索引总结

    4、索引高度:索引高度是指由于数据行的插入操作而产生的索引层数,当表中添加大量数据时,oracle将生成索引的新层次以适应加入的数据行,因此,oracle索引可能有4层,但是这只会出现在索引数中产生大量插入操作的...

    Oracle调优心得

    外部的性能问题 : CPU 内存 网络 行的重新排序 SQL 语句的调优 调整 Oracle 的竞争 调整 Oracle 的排序操作 表格和索引存储参数设置的要求总结

    oracle实验报告

    在块中对数据库查询,增、删、改等对数据的操作是由SQL命令完成的。在PL/SQL块中,可以使用SQL的数据查询命令,数据操纵命令和事务控制命令。可使用全部SQL函数。PL/SQL中的SQL语句,可使用SQL的比较操作等运算符...

    oracle所有知识点笔记(全)

    这是我自己学习oracle的时候,写的代码案例和笔记,基本上每一个知识点都写的很清楚!大家可以作为参考! 该有的知识点都有! 基本的sql语法,触发器,存储过程,存储函数, 流程控制,游标,异常处理,记录类型,...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

    ORACLE 常用分析函数

     ROW_NUMBER () OVER([partition_clause] order_by_clause) dense_rank在做排序时如果遇到列有重复值,则重复值所在行的序列值相同,而其后的序列值依旧递增,rank则是重复值所在行的序列值相同,但其后的序列值从...

    oracle11g

    第四章、WHERE子句中常用的运算符 第五章:分组函数 第六章:数据限定和排序 第七章:复杂查询(上):多表连接技术 第八章:复杂查询(下):子查询 第二部分:用户及数据库对象 第九章:用户访问控制 第十章...

    Oracle数据库、SQL

    5.3 null值在排序中显示 10 5.4 order by后面可以跟什么 10 5.5多列排序 10 六、 单行函数的使用 11 6.1数值类型 11 6.2日期类型 11 6.3字符类型 13 6.4转换函数 14 6.5其他注意事项 14 七、 SQL语句中的分支 15 7.1...

    Oracle查询总结与优化

    p_SqlSelect varchar2, --查询语句,含排序部分 p_OutRecordCount out int,--返回总记录数 p_OutCursor out refCursorType) as v_sql varchar2(3000); v_count int; v_heiRownum int; v_lowRownum int; begin ...

    深入解析Oracle.DBA入门进阶与诊断案例

     本书给出了大量取自实际工作现场的实例,在分析实例的过程中,兼顾深度与广度,不仅对实际问题的现象、产生原因和相关的原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的思路和...

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    《Oracle优化日记:一个金牌DBA的故事》是一本介绍Oracle数据库优化方法的书,以一个实际的大型优化项目为原型,用日记的形式记录了一个优化小组的DBA 如何从纷繁的头绪中找到突破口,进而完成了一个看似不可能完成...

    Oracle中三种表连接算法的总结

    2. 排序合并连接 (Sort Merge Join)顾名思义,排序合并就是先分别对待连接的数据集进行排序,然后再合并,其执行过程大致为:对表A的数据集进行排序,排序结果保存的工作区A中;对表B的数据集进行排序,排序结果...

    oracle数据库sql的优化总结

    五:select语句中尽量避免使用*(执行时会把*依次转换为列名); 六:尽量多的使用commit; 七:Decode可以避免重复扫描相同的记录或重复连接相同的表; 八:通过内部函数也可提高sql效率; 九:连接多个表时,使用...

    oracle 数据库常用命令

    总结了oracle 数据库的常用命令, 包括创建用户,创建表,排序,增加表空间等

    收获不知Oracle

    2.2.3.2 体系结构中提交的探讨34 2.2.3.3 劳模的评选 38 2.2.3.4 回滚的研究 40 2.2.3.5 一致的查询 43 2.2.3.6 一致读的原理46 2.2.3.7 实践的体会 49 2.3 体系学习让SQL性能提升千倍 65 2.3.1 一起探索体系学习的...

    Java 排序算法知识点总结.zip

    它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run ...

Global site tag (gtag.js) - Google Analytics