可以做一个函数,输入中文的数字串,输出number型的数字.
比如 (这个函数应该不难)
...
然后把这个放到select 的列表中,并用这个函数结果进行排序
select?f_tonumber(a.col1),a.*
from?tabname?a
where?...
order?by?1;
oracle汉字排序
①.、使用拼音排序 NLS_SORT=SCHINESE_PINYIN_M
这样,就可以在查询的时候,指定汉字的排序方式,设定方式可以分为以下三个级别:
希望对你有所帮助
①.、设置NLS_SORT参数值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序
按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;
按笔画:alter session set nls_sort = SCHINESE_STROKE_M;
按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;
按照笔划排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
按照部首排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
按照拼音排序 此为系统的默认排序方式
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
set NLS_SORT=SCHINESE_RADICAL_M export NLS_SORT (sh) setenv NLS_SORT SCHINESE_RADICAL_M (csh) HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表)
Oracle缺省是不能使用中文字段的,要使用中文字段是用双引号引起来的,相比操作英文字段的字段,中文字段必须都使用""引起来才能使用,英文字段则直接输入字段名即可.
对于操作包含有中文字段的库表,示例如下:testtab(id,name,"地址","年龄","性别",bz)
操作方法:
英文的字段:select * from testtab order by id;
中文的字段:select * from testtab order by "性别";
select id,name,"地址","年龄","性别",bz from testtab order by id,"性别";
以上就是土嘎嘎小编为大家整理的oracle如何中文排序相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!