zoukankan      html  css  js  c++  java
  • Oracle排序(中文)

    一、中文排序   
       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 nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M'); 

    二、排序字段为空
       1、缺省处理 
            Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 

       2、使用nvl函数 
            nvl函数可以将输入参数为空时转换为一特定值,如 nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,
            如果不为空则返回employee_name, 通过这个函数可以定制null的排序位置。 

      3、使用decode函数 
           decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 
           decode函数比nvl函数更强大,同样它也可以将输入参数为空时转换为一特定值,如 
           decode(employee_name,null,’张三’, employee_name)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name 
           通过这个函数可以定制null的排序位置。  

           DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能。
           DECODE有什么用途呢?先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,
           通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else
           或choose case之类的流控制语句进行判断。如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。
           如下:select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee 是不是很简洁?
           DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1时,
           DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,
           但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。

  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/lgx5/p/11757145.html
Copyright © 2011-2022 走看看