`
dingjun1
  • 浏览: 211847 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE中文排序

阅读更多
一、中文排序  
   1. //按照笔划排序

   2. select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');

   3. //按照部首排序

   4. select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');

   5. //按照拼音排序,此为系统的默认排序方式

   6. select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

二、排序字段为空(以下内容转载http://space.itpub.net/10768286/viewspace-269175)
   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函数具备大于、小于或等于功能。






4、使用case语法

Case语法是Oracle 9i后开始支持的,是一个比较灵活的语法,同样在排序中也可以应用
如:
select
  *
   from employee
     order by  (case employee_name
                 when null then
                    '张三'
                        else
                          employee_name
                                     end)
表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过case语法同样可以定制null的排序位置。

5、使用nulls first或者nulls last语法

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

--将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last


分享到:
评论

相关推荐

    oracle数据库中汉字排序方法

    ### Oracle数据库中汉字排序方法 在Oracle数据库中处理中文数据时,经常需要对包含中文字符的数据表...通过以上内容的学习与实践,我们可以有效地在Oracle数据库中实现汉字排序功能,从而更好地管理和利用中文数据。

    oracle__汉字排序

    本文将围绕Oracle数据库中的汉字排序功能进行深入探讨,特别是Oracle 9i版本及其之后版本中关于汉字排序的具体实现方式。 #### 二、Oracle 汉字排序方式 在Oracle中,可以通过设置`NLS_SORT`参数来控制汉字的排序...

    oracle排序方法拼音,部首,笔画

    本文将详细介绍如何使用Oracle中的“NLS_SORT”功能,实现按照拼音、部首和笔画对中文数据进行排序的方法。 #### 一、Oracle9i中的NLS_SORT属性 Oracle9i及其后续版本提供了多种预定义的排序规则,其中包括针对...

    Oracle 中对中文字段进行排序.txt

    Oracle 中对中文字段进行排序.txt

    对Oracle 排序中的几种常用排序的介绍

    1. **按拼音排序**:Oracle支持按照汉字的拼音进行排序,这在处理中文数据时非常有用。可以使用`NLSSORT`函数配合`NLS_SORT`参数来实现。例如,以下语句会按照汉语拼音对`danwei`字段进行升序排序: ```sql select...

    oracle指定排序的方法详解

    Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。 1、设置NLS_SORT参数值 SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M ...

    oracle汉字转拼音函数整理大全

    在Oracle数据库中,有时需要将汉字转换成拼音,尤其是在处理中文数据时。本篇文档详细介绍了两种用于转换汉字到拼音的自定义函数:`fn_getpyKGJG` 和 `fn_getpyWKG`。这些函数能够满足不同场景下对拼音格式的需求,...

    Oracle 中文字段进行排序的sql语句

    在Oracle数据库中,对中文字段进行排序是一项常见的需求,特别是在处理中文字符的数据时。Oracle提供了多种方式来实现中文字段的排序,包括按照笔画、部首以及拼音。下面将详细阐述这些方法及其背后的原理。 首先,...

    EasyUI Datagrid 中文排序的问题

    本文将详细介绍如何解决EasyUI Datagrid中的中文排序问题,并分别从前端和后端两个角度给出具体的实现方案。 #### 二、EasyUI Datagrid简介 EasyUI 是一个基于 jQuery 的简单而强大的 UI 库,它提供了大量的用户...

    oracle数据库汉字首字排序

    #### 一、Oracle数据库中的汉字排序 在Oracle数据库中,对于汉字排序的需求非常常见,尤其是在需要按照拼音或者笔画等规则进行排序的情况下。Oracle提供了一个强大的函数`NLSSORT()`来实现这种需求。 ##### 1. `...

    Toad for Oracle 12.8简体中文语言包

    对于"简体中文语言包",这表明Toad for Oracle 12.8版本已经本地化为中文,使得中国用户在使用时无需面对英文界面的困扰,大大降低了学习和使用的难度。对于那些不熟悉英文的数据库管理人员和开发者来说,这是一个...

    oracle汉字转拼音

    根据提供的文件信息,本文将详细解释如何在Oracle数据库中实现汉字到拼音的转换,并通过具体的代码实例进行说明。 ### Oracle数据库中的汉字转拼音 #### 背景介绍 在处理包含中文字符的数据时,有时我们需要将汉字...

    oracle姓名中文转全拼函数

    Oracle姓名中文转全拼函数是解决在Oracle数据库中处理中文姓名时的一个常见需求,特别是考虑到汉字的多样性和复杂性,包括生僻字和多音字的处理。此函数旨在将中文姓名转换为全拼,方便进一步的数据处理或搜索。下面...

    Oracle 汉字拼音简码获取

    给定的代码片段展示了如何在Oracle数据库中创建一个名为`ZLSPELLCODE`的函数,用于获取汉字字符串的拼音简码。该函数接受两个参数:`v_InstrInVarchar2`表示输入的汉字字符串,`v_OutNumInInteger`则是一个可选参数...

    ORACLE汉字转拼音

    在Oracle数据库环境中,有时我们需要对汉字字段进行处理,例如转换为拼音,以便于搜索、排序或者与其他系统集成。"ORACLE汉字转拼音"这个主题就聚焦于如何在Oracle数据库中实现这一功能。以下是对这个知识点的详细...

    oracle 中文转拼音工具包

    总的来说,"Oracle中文转拼音工具包"提供了一种有效的方法,帮助开发者在Oracle数据库环境中处理中文字符,将它们转化为拼音形式,从而扩展了数据库的功能,使其能够更好地应对中文数据的处理挑战。正确理解和使用这...

    oracle获取汉字拼音首字母

    在Oracle数据库中实现获取汉字拼音首字母的需求,通常涉及到对中文字符的处理以及拼音转换的技术。这样的功能可以应用于多种场景,例如数据排序、索引建立或是快速检索等。本文将详细介绍如何在Oracle环境中实现这一...

    oracle-sort-order-by.rar_oracle_sort - order

    在Oracle数据库中,排序(Sort)是SQL查询中不可或缺的一部分,`ORDER BY`子句用于决定查询结果的显示顺序。本篇文章将深入探讨Oracle数据库的日文排序机制,这对于在日本进行外包软件开发的工程师来说尤其重要。 ...

    Navicat for Oracle中文版

    3. **数据查看与编辑**:提供数据表查看器,用户可以浏览、添加、修改和删除数据库中的数据,支持数据的排序、筛选和格式化显示。 4. **SQL编辑器**:集成的SQL编辑器支持自动完成、语法高亮和错误检查,提高了编写...

Global site tag (gtag.js) - Google Analytics