PostgreSQL对汉字按拼音排序

转自:https://www.cnblogs.com/gaojian/p/3188609.html

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 db_utf8   | gao      | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

postgres=#
postgres=# \d
               List of relations
 Schema |       Name        | Type  |  Owner
--------+-------------------+-------+----------
 public | gao_chinese_order | table | postgres
 public | tbl_chinese_order | table | postgres
(2 rows)

postgres=#
insert into tbl_chinese_order values (‘刘少奇‘);

insert into tbl_chinese_order values (‘刘德华‘);

insert into tbl_chinese_order values (‘张学友‘);

普通排序

postgres=# select * from tbl_chinese_order order by info;
  info
--------
 刘少奇
 刘德华
 张学友
(3 rows)
postgres=# select * from tbl_chinese_order order by convert_to(info,‘SQL_ASCII‘);
  info
--------
 刘少奇
 刘德华
 张学友
(3 rows)

postgres=#

按拼音排序

postgres=# select * from tbl_chinese_order order by convert_to(info,‘GBK‘);
  info
--------
 刘德华
 刘少奇
 张学友
(3 rows)

postgres=#
postgres=# select * from tbl_chinese_order order by convert_to(info,‘GB18030‘);
  info
--------
 刘德华
 刘少奇
 张学友
(3 rows)

postgres=#

原文地址:https://www.cnblogs.com/sijizhen/p/10754274.html

时间: 2024-10-10 18:19:11

PostgreSQL对汉字按拼音排序的相关文章

[转]Java汉字按照拼音排序

最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator.getInstance(java.util.Locale.CHINA); String[] arr = { "张三", "李四", "王五", "赵六", "JAVA", "123", &q

MySQL按照汉字的拼音排序、按照首字母分类

项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需要按拼音字母从A到Z分类显示. 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了),直接在查询语句后面添加ORDER BY name ASC,查询结果将按照姓氏的升序排序:如果存储姓名的字段采用的是utf8字符集,需要在排序的时候对字段进行转码,对应的代码是ORD

MySQL按照汉字的拼音排序

按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了). 直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序: 如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码:对于的代码是  or

MySQL按照汉字的拼音排序(转)

按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了). 直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序: 如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码:对于的代码是  or

TP5 按照汉字的拼音排序

业务需求:接口返回一个列表,但是这个列表要求按一定的条件排序,条件如下: 1,某字段(field1)为null的排前面 2,某字段(field2)为null的排前面 3,姓名(field3)按照汉字的拼音排序 4,某字段(field4)按照ID倒序排序 乍一听有点复杂,其他的不多说,这篇文章主要讲怎么在TP5里实现按照汉字的拼音排序 多字段排序这里要介绍到TP5 一个类 想了解的可以参考这篇文章<TP5多字段排序> 查阅了资料,网上千篇一律,总结了两点: 1,如果存储姓名的字段采用的是GBK字

js中文汉字按拼音排序

代码1,拼音排序: var array = ['武汉', '北京', '上海', '天津']; array = array.sort( function compareFunction(param1, param2) { return param1.localeCompare(param2); } ); console.log(resultValue); array结果为:[ '北京' , '上海' , '天津' ,'武汉' ] ; 代码2,拼音排序并按字母分类: function pySegS

mysql根据汉字拼音排序查询

例如现在有一张数据表label,字段为id.name,此表的字符集设置为gb2312,以gb2312_chinese_ci整理. 设置InnoDB引擎的字符集也为简体中文,且整理为gb2312_chinese_ci. 查询语句如下: select * from label order_by name collate gb2312_chinese_ci; 效果如下: tip:有时候结果不是很准确,不知道是不是因为字符集选择的不当导致的,知道的朋友,请解答下,谢谢! mysql根据汉字拼音排序查询,

汉字转拼音 汉字排序功能

.h文件 #import <Foundation/Foundation.h> @interface ChineseTool : NSObject /** *  汉字转拼音 * *  @param chinese         要转换的汉字 *  @param stripDiacritics 是否需要音标 * *  @return 拼音 */ + (NSString *)pinyinForChinese:(NSString *)chinese stripDiacritics:(BOOL)str

汉字转拼音,中文拼音排序器

汉字转拼音 NSMutableString *ms = [[NSMutableString alloc] initWithString:@"我是中国人"]; if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformMandarinLatin, NO)) { NSLog(@"Pingying: %@", ms); // wǒ shì zhōng guó rén } if (