oracle指定排序的方法详解_oracle

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注册表)

时间: 2024-10-30 08:42:02

oracle指定排序的方法详解_oracle的相关文章

oracle数据库tns配置方法详解_oracle

TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client

Oracle数据操作和控制语言详解_oracle

正在看的ORACLE教程是:Oracle数据操作和控制语言详解.SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL.其中用于定义数据的结构,比如 创建.修改或者删除数据库:DCL用于定义数据库用户的权限:在这篇文章中我将详细讲述这两种语言在Oracle中的使用方法.  DML语言 DML是SQL的一个子集,主要用于修改数据,下表列出了ORACLE支持的DML语句. 插入数据 INSERT语句常常用于向表中插入行,行中可以有特殊数据字段,或者可

Oracle存储过程和自定义函数详解_oracle

概述 PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用. 相同点: 完成特定功能的程序 不同点:是否用return语句返回值. 举个例子: create or replace procedure PrintStudents(p_staffName in xgj_test.username%type) as cursor c_testData is select t.sal, t.comm from

Oracle排名函数(Rank)实例详解_oracle

--已知:两种排名方式(分区和不分区):使用和不使用partition --两种计算方式(连续,不连续),对应函数:dense_rank,rank ·查询原始数据:学号,姓名,科目名,成绩 select * from t_score S_ID S_NAME SUB_NAME SCORE 1 张三 语文 80.00 2 李四 数学 80.00 1 张三 数学 0.00 2 李四 语文 50.00 3 张三丰 语文 10.00 3 张三丰 数学 3 张三丰 体育 120.00 4 杨过 JAVA 9

oracle中distinct的用法详解_oracle

下面先来看看例子: table表 字段1     字段2    id        name    1           a    2           b    3           c    4           c    5           b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录. select distinct name from table 得到的结果

Oracle性能优化基本方法详解

Oracle性能优化基本方法包括一下几个步骤,包括: 1)设立合理的Oracle性能优化目标. 2)测量并记录当前的Oracle性能. 3)确定当前Oracle性能瓶颈(Oracle等待什么.哪些SQL语句是该等待事件的成分). 4)把等待事件记入跟踪文件. 5)确定当前的OS瓶颈. 6)优化所需的成分(应用程序.数据库教程.I/O.争用.OS等). 7)跟踪并实施更改控制过程. 8)测量并记录当前性能 9)重复步骤3到7,直到满足优化目标 下面来一一详述. 1.设立合理的Oracle性能优化目

LINUX下Oracle数据导入导出的方法详解_oracle

本文讲述了LINUX下Oracle数据导入导出的方法.分享给大家供大家参考,具体如下: 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移   它有三种模式: a.  用户模式: 导出用户所有对象以及对象中的数据: b.  表模式: 导出用户所有表或者指定的表: c.  整个数据库: 导出数据库中所有对象. 2. 导出工具exp交互式命令行方式的使用的例子: $ex

oracle中去掉回车换行空格的方法详解_oracle

去除换行update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(10),'');去掉回车update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(13),'');去掉空格update zhzl_address t set t.add_administration

解决Oracle删除重复数据只留一条的方法详解_oracle

查询及删除重复记录的SQL语句1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where  Id in (select Id from 表 group by Id having count(Id) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id)