`

oracle中对排序的总结

 
阅读更多

  -- 按拼音排序 (系统默认)

  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,'单位是空')



本文地址:http://www.stuhack.com/sjk/oracle/2010/1016/5946.html
分享到:
评论

相关推荐

    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数据库scott模式下的emp表和dept表

    本文档将基于 Oracle 数据库 scott 模式下的 emp 表和 dept 表,总结常见的操作和知识点。 一、基础操作 1. 查询 20 号部门的所有员工信息 select * from emp where deptno = 20; 这个查询语句使用了 WHERE 子句...

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

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

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

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

    Oracle试题与答案.doc

    以下是Oracle试题与答案的知识点总结: 一、基本SQL SELECT语句 1. SELECT语句的基本结构:SELECT SELECT 语句是SQL语言中最基本的语句之一,用于从数据库中检索数据。基本结构为:SELECT 列名 FROM 表名 WHERE ...

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

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

    oracle数据库sql的优化总结

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

    oracle 数据库常用命令

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

Global site tag (gtag.js) - Google Analytics