Oracle 中文排序】的更多相关文章

    按照拼音顺序(常用)     ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_PINYIN_M') 按照部首顺序 ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_RADICAL_M') 按照笔画顺序 ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_STROKE_M')…
在使用order by排序的时候,出现如下情况:   印象中中文排序应该默认是按照拼音排序的,为何"鑫"会排在"中"的后面呢?猜想order by是不是根据对应字符的ASCII码排的呢,因此列出了对应的ASCII,如下:   由此基本可以断定,确实是通过ASCII的大小来排序的,这也解释了为什么数字会排在字母之前,字母为什么会排在汉字之前的现象.但是为什么会出现汉字默认是通过拼音排序的错觉呢,于是查了一下汉字的编码规则,有提到如下一句:       "一级…
定义一个类: using System.Data.SQLite; namespace DAL { /// <summary> /// SQLite中文排序 /// </summary> [SQLiteFunction(FuncType = FunctionType.Collation, Name = "PinYin")] public class SQLitePinYingSort : SQLiteFunction { public override int C…
1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL将无法实际处理中文. 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象. 2.解决方法:对于包含中文的字段加上”binary”属性,使之作为二进制比较,例如将”nam…
1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. function utf8_array_asort(&$array) { if(!isset($array) || !is_array($array)) { return false; } foreach($array as $k=>$v) { $array[$k] = iconv('UTF-8'…
在配置文件中,一般会用以下配置: 'db_oracle'=>array( 'class' => 'CDbConnection', 'connectionString'=>'oci:dbname=服务器地址/服务名', 'username'=>'用户名', 'password'=>'密码', 'charset' => 'utf8', 'enableParamLogging'=>true, ), 我试了千万遍,找了N久的资料,就是不行,在thinkphp中发现也没有什…
用Hibernate+MySQL的童鞋是不是非常苦恼为什么MySQL不支持中文排序呢?没办法.仅仅有等utf8_unicode_cn 出来了.假设用hibernate即想实现跨库,又想不改代码怎样实现呢.下边告诉你答案. 方法一.描写叙述:给Hibernate的MySQL方言包注冊一个排序方法,该方法中实现了MySQL中文排序. 贴代码: public class MySQLExtendDialect extends MySQLDialect { public MySQLExtendDialec…
最近在写Java web. 写JSP的时候发现一个很好玩的插件dataTables.分页.过滤.排序等等手到擒来. 哎哎哎,有点点可惜的是排序这个功能不支持中文.于是网上查查找找,现在把方法整理一下,与君共享. <script type="text/javascript"> // oSort是排序类型数组, 'chinese-asc'是自己定义的类型的排序(*-asc || *-desc)名称 // 插件应该会根据表格中的内容的类型(string, number, chin…
1.TreeMap集合倒序排列 import java.util.Comparator; /** * 比较算法的类,比较器 * @author Administrator * */ public class MyCmp implements Comparator<Object> { // 实现倒序 @Override public int compare(Object o1, Object o2) { int x = o2.toString().compareTo(o1.toString())…
首先,需要保证oracle客户端服务器的字符集是一样的,并且保证该字符集支持中文.你可以使用plsql查看是否乱码. 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.OleDb; namespace Oracle中文 { class Program { static void Main(string[] args) { Conso…
cx_oracle访问处理oracle中文乱码问题 问题描述 使用docker打包了centos镜像,编码为gbk,随后访问oracle出现了很多乱码.其原因自然是因为编码不一致,服务器为zhs16gbk,按理说客户端也是gbk应该可以,但是不知道为什么. 解决办法 找了多种方式,最终使用下面这个方式处理好了: 将dockerfile中设置编码的地方按照如下处理: RUN yum -y install kde-l10n-Chinese \ && yum -y reinstall glibc…
mysql order by 中文 排序 1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL将无法实际处理中文. 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象. 2.解决方法:对于包含中文的字段加上”binary…
1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. 代码如下 复制代码 function utf8_array_asort(&$array){if(!isset($array) || !is_array($array)){return false;}foreach($array as $k=>$v){$array[$k] = iconv('UTF-…
在mysql中 如果字段的值是中文的话,排序结果往往不符合人意. 所以如果要中文排序正常的话,可以使用如下函数 SELECT huayangare0_.id AS id1_0_, huayangare0_.create_date AS create_d2_0_, huayangare0_.create_id AS create_i3_0_, huayangare0_.uid AS uid4_0_, huayangare0_.update_date AS update_d5_0_, huayang…
toad for oracle中文显示乱码 数据入库的时候中文显示正常,在toad for oracleclient和页面显示都是乱码!!! 原因:在数据入库时候出现的问题. 解决方式: 在系统变量中添加:变量名:NLS_LANG   变量值:AMERICAN_AMERICA.ZHS16GBK 然后重新启动toad for oracle 就显示正常了.之前插入的乱码数据删除,新增的正常显示(client显示正常.页面显示正常).…
目的 1.NSArray 能够支持中文排序 2.NSLog 能够直接输出 NSArray 内的中文(事实上 java 直接打印数组也不能显示内容哈) 又是死去活来的搞了1个小时,分类实现.废话少说,上代码 终于实现方式叫非正式协议(类目/分类)(就是不用动原来的类,新写类来实现原有类没有的功能),但要注意以下的 sortedLocal 方法但是覆盖原有方法,一定注意使用! main.m #import <Foundation/Foundation.h #import "NSArray+Lo…
1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL将无法实际处理中文. 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象. 2.解决方法:对于包含中文的字段加上”binary”属性,使之作为二进制比较,例如将”nam…
asp.net oracle 中文乱码 解决方法 不需要去修改oracle以及client的字符集,只需要在web.config中连接字符串上加上 Unicode=True 问题解决. <add key="connstring" value="Data Source=TESTDB;user id=username;password=password;Unicode=True"/> <add name="ConnectionString&q…
查看字段编码: show full columns from t2;show variables like '%character%';show variables like 'collation_%';show variables like 'character_set_%'; 修改库字符集: alter database test character set gbk; 修改表字符集: alter table t1 character set gbk; 修改字段字符集: alter table…
@RequestMapping(value = "/getBaseCodess", method = RequestMethod.GET) public ModelAndView getBaseCodess(HttpServletRequest request, HttpServletResponse response) { List<Map<String,Object>> depts = new ArrayList<>(); try { Integ…
前言 或许都知道,MySQL不支持中文排序,这样的说法可以说对也可以说也不对.接下来我们分析一下: 首先执行命令,查看编码集: SHOW VARIABLES LIKE 'character_set%'; 可以看到字符集是utf8mb4,这个字符集是市面上比较使用非常多的字符集 我们再看下,这个字符集对应的排序规则有哪些? show collation like 'utf8mb4%'; 图中可以看到,utf8mb4有很多的排序规则,比如说通用的uft8mb4_general_ci,瑞典文比较规则u…
Python3写法 代码 # -*- coding: utf-8 -*- # 需求:年龄倒序,姓名正序 from itertools import chain from pypinyin import pinyin, Style class Student: def __init__(self, name, age): self.name = name self.age = age def to_pinyin(stu): lst = pinyin(stu.name, style=Style.TO…
在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RADICAL_M 按中文笔画进行排序:SCHINESE_STROKE_M 而oracle 9i是对中文的排序是默认按拼音排序(并不是指NLS_SORT = SCHINESE_PINYIN_M,而是说SQL中不指定NLS_SORT时对中文列排序时默认按拼音)的,跟之前的2进制编码排序有所不同.具体用法如…
当我们order排序不能够实现我们想要的内容时候,尝试一下NLSSORT这个函数吧 他不仅仅按照姓氏排序,名也会排序: nls_param用于指定语言特征,格式为nls_sort      = sort,nls_sort值为: 按照部首排序:SCHINESE_RADICAL_M 按照笔划排序:SCHINESE_STROKE_M 按照拼音排序:SCHINESE_PINYIN_M TEST=# select * from helei order by nlssort(name,'NLS_SORT=…
sql server:select * from [表名]order by [字段],[字段] collate Chinese_PRC_CS_AS_KS_WS mysql:select * from [表名] ORDER BY CONVERT([字段] USING gbk); oracle: 按中文拼音进行排序:SCHINESE_PINYIN_M SELECT * FROM [表名] ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_PINYIN_M');…
演示地址:http://lar5.sinaapp.com/ 1.index.html <html xmlns="http://www.w3.org/1999/xhtml"><head> <title>中文首字母排序</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewp…
最近迁移一个.net应用系统从32位Windows2003升级到64位的Windows2008中,发现所有涉及中文的内容插入到Oracle数据库中都变为?,最开始以为是2008系统的字符集与Oracle数据库中得不一致,检查发现NLS_LANG都是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,是一致的. 网上狂找一遍,基本提供的思路都是设置客户端与数据库端字符集一致的方式,问题是我这已经是一致了,问题还是没解决. 几经折腾,无意间设置了数据库连接字符串字符集,问题居然得到解…
项目开发中,我们有时会碰到需要分组排序来解决问题的情况:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示例和SQL语句阐述下oracle数据库中用于分组排序函数的用法.1.row_number() over()row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组…
1.Order by 子句的使用 select column.... from .... order by ... 1) Order by子句在整个 select语句中的位置: 始终位于最后 2) order by后可以跟什么: 列名,列的别名,表达式, 列出现在select关键字后的 顺序(列号); 3) order by后可以跟多列, 表示先按第一列排序, 如第一列有相同值再按 第二列进行排序,如前二列 均有相同值,则按第三列进行排序... 4) ASC表升序,可以省略. DESC表降序.…
客户端NLS_LANG的设置方法 Windows: # 常用中文字符集set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK # 常用unicode字符集 set NLS_LANG=american_america.AL32UTF8 可以通过修改注册表键值永久设置 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG 或者设置环境变量  NLS_LANG Unix: # 常用unicode字符集 export…