ALTER SESSION SET NLS_SORT=''; 排序影响整个会话 
Oracle9i之前,中文是按照二进制编码进行排序的。   
    
    在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值     
    
    SCHINESE_RADICAL_M   按照部首(第一顺序)、笔划(第二顺序)排序     
    
    SCHINESE_STROKE_M   按照笔划(第一顺序)、部首(第二顺序)排序     
    
    SCHINESE_PINYIN_M   按照拼音排序 
oracle9i中新增了按照拼音、部首、笔画排序功能 
拼音 SELECT * FROM TEAM ORDER BY NLSSORT(列名,'NLS_SORT = SCHINESE_PINYIN_M') 
笔划 SELECT * FROM TEAM ORDER BY NLSSORT(列名,'NLS_SORT = SCHINESE_STROKE_M') 
部首 SELECT * FROM TEAM ORDER BY NLSSORT(列名,'NLS_SORT = SCHINESE_RADICAL_M')

Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。 
1、设置NLS_SORT参数值 
      SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 
      SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 
      SCHINESE_PINYIN_M 按照拼音排序 
2、Session级别的设置,修改ORACLE字段的默认排序方式: 
      按拼音:alter session set nls_sort = SCHINESE_PINYIN_M; 
      按笔画:alter session set nls_sort = SCHINESE_STROKE_M; 
      按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M; 
3、语句级别设置排序方式: 
      按照笔划排序 
      select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M'); 
      按照部首排序 
      select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M'); 
      按照拼音排序,此为系统的默认排序方式 
      select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M'); 
4、修改系统参数(数据库所在操作系统): 
      set NLS_SORT=SCHINESE_RADICAL_M ; 
       export NLS_SORT (sh) 
       setenv NLS_SORT SCHINESE_RADICAL_M (csh) 
      HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表)

Oracle 官方说明

NLS_SORT NLS_SORT specifies the collating sequence for ORDER BY queries. NLS_COMPNLS_COMP specifies the collation behavior of the database session.

Property 
Description 
Parameter type 
String 
Syntax 
NLS_SORT = { BINARY | linguistic_definition } 
Default value 
Derived from NLS_LANGUAGE 
Modifiable 
ALTER SESSION 
Range of values 
BINARY or any valid linguistic definition name

If the value is BINARY, then the collating sequence for ORDER BY queries is based on the numeric value of characters (a binary sort that requires less system overhead). 
If the value is a named linguistic sort, sorting is based on the order of the defined linguistic sort. Most (but not all) languages supported by the NLS_LANGUAGE parameter also support a linguistic sort with the same name. 
Note: 
Setting NLS_SORT to anything other than BINARY causes a sort to use a full table scan, regardless of the path chosen by the optimizer. BINARY is the exception because indexes are built according to a binary order of keys. Thus the optimizer can use an index to satisfy the ORDER BY clause when NLS_SORT is set to BINARY. If NLS_SORT is set to any linguistic sort, the optimizer must include a full table scan and a full sort in the execution plan. 
         You must use the NLS_SORT operator with comparison operations if you want the linguistic sort behavior.

Property 
Description 
Parameter type 
String 
Syntax 
NLS_COMP = { BINARY | LINGUISTIC | ANSI } 
Default value 
BINARY 
Modifiable 
ALTER SESSION 
Basic 
No

Values: 
BINARY 
Normally, comparisons in the WHERE clause and in PL/SQL blocks is binary unless you specify the NLSSORT function. 
LINGUISTIC 
Comparisons for all SQL operations in the WHERE clause and in PL/SQL blocks should use the linguistic sort specified in the NLS_SORT parameter. To improve the performance, you can also define a linguistic index on the column for which you want linguistic comparisons. 
ANSI 
A setting of ANSI is for backwards compatibility; in general, you should set NLS_COMP to LINGUISTIC

注意:当使用了NLS_SORT或NLS_COMP,应该指定函数索引来提高数据库性能。如 
create index [schema.]indexName on tableName(function(propertyName))

注意:虽然能在oracle查询的时候能用得上,但不知道为什么,当映射到hibernate上时却无效,依然按NLS_SORT=binary排序,不过可以使用@org.hibernate.annotation.OrderBy("nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M')")指定排序方法

nls_sort和nlssort 排序功能介绍的更多相关文章

  1. Oracle中nlssort()函数排序功能

    转自:https://www.iteye.com/blog/libaxiaoyuan-2199851 Oracle9i之前,中文是按照二进制编码进行排序的.在oracle9i中新增了按照拼音.部首.笔 ...

  2. nlssort排序

    ALTER SESSION SET NLS_SORT=''; 排序影响整个会话 Oracle9i之前,中文是按照二进制编码进行排序的. 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NL ...

  3. python中列表、元组、字典内部功能介绍

    一.列表(list) 常用功能的介绍:

  4. Python中list的功能介绍

    List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([ ...

  5. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本模块管理界面新增模块排序功能

    模块(菜单)的排序是每个系统都必须要有的功能,我们框架模块的排序在业务逻辑中已经体现. WinForm版本可以直接在界面上对模块进行排序以控制模块展示的顺序.Web版本在3.2版本中也新增了直接可以模 ...

  6. Python实现EXCEL表格的排序功能

    EXCEL的数值排序功能还是挺强大的,升序.降序,尤其自定义排序,能够对多个字段进行排序工作. 那么,在Python大法中,有没有这样强大的排序功能呢?答案是有的,而且本人觉得Python的排序功能, ...

  7. Fiddler抓包使用教程-基本功能介绍

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72932886 本文出自[赵彦军的博客] Fiddler 基本页面 会话列表功能介绍 ...

  8. 性能测试-9.Controller功能介绍

    Controller功能介绍 设计场景 配置场景 场景监控 一.设计场景 二.配置场景 规划场景(场景名.调度方式.运行方式.Initialize方式.Start Vusers方式.Duration方 ...

  9. 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍

    通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括 ...

随机推荐

  1. Linux下用dump实现备份和还原 ux下用dump实现备份和还原

    对于系统而言,我们可以有很多种办法去备份(还原)系统或文件,之所以要去做备份,就是为了在系统或文件遭到损害时,能及时恢复,把损失减小到最小.当然,对于企业服务器而言,备份的重要性是举足轻重.咱们今天就 ...

  2. V9最新手机门户域名绑定教程。

    如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上.二.在网站后台模块>手机门户域名里面填写“http://wap.dom ...

  3. Socket异步通信学习三

    接下来是客户端部分,采用同步接收模式,在SocketClient项目中新建了一个SynServer类,用于存放socket服务器代码,和AsynServer类似,主要有4个方法: 有一个全局socke ...

  4. 利用android studio gsonformat插件快速解析复杂json

    在android开发过程中,难免会遇到json解析,在这篇文章中为你快速解析复杂的json. 首先,在android studio中安装gsonformat插件. 点击File->Setting ...

  5. JAVA_FastJson

    package com.qf.mobiletrain01; import java.util.List; import com.alibaba.fastjson.JSON; class Student ...

  6. Android开发了解——AAPT

    aapt即Android Asset Packaging Tool , 在SDK的build-tools目录下. 该工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也 ...

  7. linux版本qq的安装

    下载http://download.csdn.net/detail/gg296231363/3728117原谅我吧,1分而已,可以自己google,到处有. tar xzvf linuxqq_v1.0 ...

  8. 去除ActionBar的方法

    今天做一个播放器项目,由于要去除ActionBar,纠结好久,原来这么简单 记录一下 只需要修改AndroidManifest.xml文件中的主题即可 <application android: ...

  9. MongoDB基本操作

    转:http://zhidao.baidu.com/link?url=D5s4tNnP6hH0XPZkFooV-o4MQH3pNZh7C3rtLX_HtVWaIyBRhLIUyoZYfVv15l2eS ...

  10. css关于宽度

    很多时候,我们指定了某个元素的宽度,浏览器渲染时却只给这个元素一半的宽度,这时可以试试min-width属性,该属性表示浏览器不能偷懒,资源再紧张也得分配min-width指定的宽度.