按照 排序 oracle,oracle 按照中文排序
在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择:
按中文拼音进行排序:SCHINESE_PINYIN_M
按中文部首进行排序:SCHINESE_RADICAL_M
按中文笔画进行排序:SCHINESE_STROKE_M
而oracle 9i是对中文的排序是默认按拼音排序(并不是指NLS_SORT = SCHINESE_PINYIN_M,而是说SQL中不指定NLS_SORT时对中文列排序时默认按拼音)的,跟之前的2进制编码排序有所不同.具体用法如下:
直接写在sql中,例如:
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');
配置在初始化参数NLS_SORT中,这可以在数据库创建时指定,也可以通过alter session来修改.如果是前者,则在所有session中生效.例如:
使用select * from NLS_SESSION_PARAMETERS;语句可以看到NLS_SORT的值.
更改配置文件:alter system set nls_sort='SCHINESE_PINYIN_M' scope=spfile;
更改session:alter SESSION set NLS_SORT = SCHINESE_PINYIN_M;
这里要额外注意一下性能问题,按oracle官方文档的解释,oracle在对中文列建立索引时,是按照2进制编码进行排序的,所以如果NLS_SORT被设置为BINARY时,排序则可以利用索引.如果不是2进制排序,而是使用上面介绍的3种针对中文的特殊排序,则oracle无法使用索引,会进行全表扫描.这点一定要注意,多用plsql工具比较一下执行效率.解决方法是,在此列上建立linguistic index.例如:CREATE INDEX nls_index ON my_table (NLSSORT(name, 'NLS_SORT = SCHINESE_PINYIN_M'));
按照 排序 oracle,oracle 按照中文排序相关推荐
- oracle中的中文排序,Oracle中的中文排序方式
测试中文排序的版本: SQL> select * from v$version; BANNER ------------------------------------------------- ...
- oracle mysql 中文排序规则_ORACLE对中文排序性能优化
Oracle提供了以下类型的排序方式:(1)二进制排序(2)单语言形式排序(3)多语言形式排序 使用二进制排序排序字符数据的一种方法是基于字符的数值定义的字符编码方案.这就是所谓的二进制排序.二进制排 ...
- python编程单词排序_Python实现针对中文排序的方法
本文实例讲述了Python实现针对中文排序的方法.分享给大家供大家参考,具体如下: Python比较字符串大小时,根据的是ord函数得到的编码值.基于它的排序函数sort可以很容易为数字和英文字母排序 ...
- python汉字排序_Python实现针对中文排序的方法
本文实例讲述了Python实现针对中文排序的方法.分享给大家供大家参考,具体如下: Python比较字符串大小时,根据的是ord函数得到的编码值.基于它的排序函数sort可以很容易为数字和英文字母排序 ...
- mysql 中文排序_mysql如何按照中文排序解决方案
Sql代码 /* Navicat MySQL Data Transfer Source Server : local Source Server Version : 50022 Source Host ...
- pandas实现中文排序
在我们使用pandas过程中有时会遇到排序,尤其是中文排序,例如excel排序,按姓名拼音排序等等,而pandas默认的排序并不能满足我们的中文排序,所以有了这个中文排序方式 一.首先实现中文的拼音排 ...
- oracle登录账号和密码,oracle 登录账号与密码oracle按照中文排序
oracle按照中文排序 在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: www.2cto.com 按中文拼音进行排序:SCHINESE_PINY ...
- Oracle中文排序 NLSSORT
今天发现了个挺有意思的函数:NLSSORT,发现能给中文按拼音.笔画.部首排序,遂查了下相关资料,结果如下: Oracle 9i开始,新增了按照拼音.部首.笔画排序功能. 通过设置NSL_SORT值来 ...
- oracle+sql+按中文拼音排序,Oracle 中文字段进行排序的sql语句
Oracle 中文字段进行排序的sql语句 1)按笔画排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_STR ...
最新文章
- Android之SharedPreferences详解
- 2---信息系统集成专业技术知识(精简题目)
- JavaScript放头部不执行的情况(针对新手)
- windows 端口冲突解决
- 军哥华为HCNP(科目H12-221)真题解析课程:1-30题
- 2021年中国家装行业数字化转型研究报告
- 使用新的 apt 命令在 Ubuntu 16.04 LTS 下管理软件包
- vue-cli3 DllPlugin 提取公用库
- AI 理财顾问靠谱吗?蚂蚁支小宝是这样做的
- ffmpeg系列-编译
- Windows下Mirth连接Sybase数据库
- 2022年2月份报告合集(共326份)
- 手把手带你可视化分析 NBA 季后赛
- .NET之盛派微信SDK简单操作
- 线上教学是计算机在什么方面的应用,浅谈线上线下混合式教学模式在计算机基础教学中应用...
- 几个大学生实用的网站推荐
- 数据分析36计(22):分析师入门常见错误 幸存者偏差,如何用匹配和加权法规避...
- csdn过滤广告谷歌浏览器插件
- WARNING: channel “pecl.php.net“ has updated its protocols
- 派森诺参加第八届全国微生物基因组学学术研讨会