oracle 取英文排序,Oracle中中文、数字,英文混杂形式的字段进行排序的方法
http://blog.csdn.net/p451933505/article/details/9272257
對Oracle中中文、數字、英文混雜形式的字段進行排序的方法:
例如:
order?by?NLSSORT(字段名,‘NLS_SORT?=?SCHINESE_PINYIN_M‘),?to_number(translate(字段名,?‘0123456789‘?||?字段名,?‘0123456789‘))
NLSSORT() 函數:
可以使用NLSSORT()函數可以改變Oralce 對漢字的排序規則,排序規則如下(前三條對簡體中文進行排序,后兩條對繁體中文進行排序):
1.?SCHINESE_RADICAL_M
簡體中文按照第一順序是“部首”、第二順序是“筆畫數”進行排序。
2.?SCHINESE_STROKE_M
簡體中文按照第一順序“筆畫數”、是第二順序是“部首”進行排序。
3.?SCHINESE_PINYIN_M
簡體中文按照拼音進行排序。上例中即對簡體漢字按照拼音進行排序。
4.?TCHINESE_RADICAL_M
繁體中文按照第一順序是“部首”、第二順序是“筆畫數”進行排序。
5.?TCHINESE_STROKE_M
繁體中文按照第一順序是“筆畫數”、第二順序是“部首”進行排序。
TRANSLATE() 函數:
用法:將char中出現在from中的每個字符替換為to中的相應字符,若from比to字符串長,那么在from中比to中多出的字符將會被刪除。三個參數中有一個是空,返回值也將是空值。
select?TRANSLATE(‘例1213‘,‘0123456789‘||‘例1213‘,‘0123456789‘)?as?RESULT?from?dual;
RESULT
------------
1213
分析:該語句要將 char--‘例1213‘ 中出現在 from--‘0123456789例1213‘ 中的字符替換為 to--‘0123456789‘ 中的字符,根據 from、to 的對應關系,將 char 中的 0替換成0、1替換成1、...9替換成9,即 char 中的數字不變,又 from 比 to 長,則 from 中比 to 中多出的字符將被刪除,即刪除 char 中的漢字。
原文:http://www.cnblogs.com/oraclesea/p/5472682.html
總結
以上是生活随笔為你收集整理的oracle 取英文排序,Oracle中中文、数字,英文混杂形式的字段进行排序的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux切换界面快捷键(linux 切
- 下一篇: oracle 每日归档量,小知识:统计O