名站网址导航为大家提供关于数据库教程相关的教程网站知识。
深入oracle特定信息排序的分析
在Oracle查询中,假如如果在没有排序,但又想让某列中特定值的信息排到前面的时候,使用oracle的decode(字段,'字段值',数字),如 select name from user 查询出来的所有数据,假如如果想让 结果排到前面, 则使用如下: select name from user order by decode(name,'张三
Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。
1、设置NLS_SORT参数值
SChINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SChINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SChINESE_PINYIN_M 按照拼音排序
2、Session级别的设置,修改ORACLE字段的默认排序相关方式:
按拼音: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;
3、数据库语句级别设置排序相关方式:
按照笔划排序 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');
4、修改系统参数(网站数据库所在操作办法系统):
set NLS_SORT=SChINESE_RADICAL_M export NLS_SORT (sh) setenv NLS_SORT SChINESE_RADICAL_M (csh) hKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表)