ORACLE中用某个字段的首字母排序

今天项目上有个需求用某个字段的首字母排序:

正菜上:

1.使用oracle自带的函数nlssort;

  1)按照汉字首字母排序:nlssort(xxx,‘NLS_SORT=SCHINESE_PINYIN_M‘);

  2)按照汉字笔画排序:nlssort(xxx,‘NLS_SORT=SCHINESE_STROKE_M‘);

  3)按照汉字部首排序:nlssort(xxx,‘NLS_SORT=SCHINESE_STROKE_M‘);

2.如果需要将空值放在前面:后面加 nulls first

3.如果需要将空值放在前面:后面加 nulls last

扩展:1.这样会把数字排在前面:如果想把数字放后面:nlssort((case when trim(translate(nvl(substr(g.real_name,1,1),‘x‘),‘0123456789‘,‘ ‘)) is null then ‘‘ else substr(g.real_name,1,1) end), ‘NLS_SORT=SCHINESE_PINYIN_M‘)

原文地址:https://www.cnblogs.com/nicey-k/p/12589447.html

时间: 2024-08-03 03:55:54

ORACLE中用某个字段的首字母排序的相关文章

Oracle 10g如何对用户姓名,按首字母排序、查询

首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值     SCHINESE_RADICAL_M   按照部首(第一顺序).笔划(第二顺序)排序     SCHINESE_STROKE_M   按照笔划(第一顺序).部首(第二顺序)排序     SCHINESE_PINYIN_M   按照拼音排序 oracle9i中新增了按照拼音.部首.笔画排序功能 用法示例: 拼音 SELECT * FRO

ORACLE根据中文拼音首字母排序、取得中文拼音首字母函数

根据中文拼音首字母排序.取得中文拼音首字母函数     介绍根据中文的首字母.笔画.部首排序函数[NLSSORT]:           1).首字母           SELECT * FROM T_TABLE ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_PINYIN_M');           2).笔画     SELECT * FROM T_TABLE ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_STRO

sql 汉字按照首字母排序

SQL mysql 我们的MySQL使用latin1的默认字符集,也就是说,对汉字字段直接使用GBK内码的编码进行存储,当需要对一些有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法通过order by关键字正确排序. 经过网上查找,网上的办法大多是针对使用utf8字符集的数据库,主要的方法有: 1)直接转换字段为gbk,数据表某字段client_name的字符编码是utf8_general_ci; 比如: SELECT  *  FROM  `client_info_msg

首字母排序

今天遇到一个需求,直接没有接触过 按照某个字段的第一个字的首字母排序,查了一下资料解决了,下面是sql语句,作为记录 select `field` from `table` where 1 order by convert(field using gbk) collate gbk_chinese_ci asc 刚学的,记录下(*^__^*) 嘻嘻

利用MySQL数据库来处理中英文取首字母排序

很久都没有写博客了, 但是也积攒了了很多的问题, 下次找个时间一起整理一下, 然后记录下来, 以备不时之需. 我们的联系人列表经常会有按照首字母排序的需求.  这个很方便, 很清晰, 如果不说性能如何, 就像让数据库来做呢? 其实MySQL是支持的. 我们建立一个函数: DELIMITER $$ CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 DETERMINISTIC BE

网络获取数组信息,根据姓名按首字母排序 添加侧滑删除。

package jianlemeistaff.app.jlm.com.jianlemeistaff.activity; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.Gravi

php按照中文首字母排序

1> 网络上很多php的工具类可以将汉字转为拼音: 2> 将拼音进行排序即可 另一种则是类似mysql转码方式: 1 foreach ($array as $key=>$value) 2 { 3 $new_array[$key] = iconv('UTF-8', 'GBK', $value); 4 } 1 foreach ($array as $key=>$value) 2 { 3 $new_array[$key] = iconv('UTF-8', 'GBK', $value);

HashMap加入数据后,会自动根据首字母排序

1.Map<String, ArrayList<XX>> entityHashMap = new HashMap<>(); 然后增加一些数据,会发现根据String键值排序,并不是增加的时候的顺序, 如果是中文,会按汉字的拼音首字母排序. 2.解决方法: Map<String, ArrayList<WXsd>> entityHashMap = new LinkedHashMap<>(); 只要将HashMap==>LinkedH

中文首字母 排序

因项目需要对通讯录中的联系人进行排序,需要对中文字符进行拼音转换.其实这个转换并没有想象中的那么难(因为我们只是把中文转为拼音首字母而已,比如“王”转换为字母w就可以了,而不需要转换为完整的拼音wang).对此,我们找到了一个简便的解决办法:一个老外(代码中签名的作者叫George)用c语言写了一个pinyinFirstLetter函数用于获取中文拼音首字母. 这个函数主要基于一个巨大的c语言char数组,把unicode字符集中所有中文的拼音首字母都映射进去了. pinyinFirstLett