求一个根据汉子繁体字和英文字母 的首字母按照A-Z的顺序排序汉子和英文是混着的汉字是根据拼音首字母
英文是按照首字母他们要一起按照A-Z排序
oracle
英文是按照首字母他们要一起按照A-Z排序
oracle
解决方案 »
- oacle复合主键重复插入数据时如何跳过重复数据
- 请问如何用AIX SHELL实现数据库连接访问修改等操作
- 2台PC和一个SCSI硬盘,可以实现 OracleRAC环境吗?
- oracle8i 一启动就一直占用50%的cpu,一天了都没闲下来,请指点!
- 写了个SQL自动生成工具,以提高开发数据库的效率,有兴趣的朋友欢迎来使用
- rowid删除记录的问题
- 求解ORACLE临时表的问题
- 新手提问,怎样写并执行一个带OUT参数的存储过程啊
- 初学者问题:要在自己的机上安装pl/sql developer连服务器的oracle9i,要先装什么?oracle9i客户端吗?
- 复杂的select,各位帮忙看看。
- [color=#FF0000]【时间问题】在线急等,请大神指教![/color]
- oracle客户端已经安装,但在用EXCEL连接不了
NLS_SORT=SCHINESE_RADICAL_M 按照部首排序
NLS_SORT=SCHINESE_STROKE_M 按照笔画排序
NLS_SORT=SCHINESE_PINYIN_M 按照拼音排序 既然不能将中文转换成英文 那可以将英文的首个字母 转换成对应的中文 再通过给出的中文函数来排序
with t1 as
(
select '我' c1 from dual union all
select '你' c1 from dual union all
select 'what' c1 from dual union all
select '啊' c1 from dual union all
select 'this' c1 from dual union all
select 'b' c1 from dual union all
select 'f' c1 from dual
)select c1
from t1
order by nlssort(translate(lower(c1),'abcdefghjklmnopqrstwxyz','啊八嚓大额发噶哈几卡拉吗呐哦扒七然仨他哇西呀杂'),'NLS_SORT=SCHINESE_PINYIN_M') c1
------------------
1 啊
2 b
3 f
4 你
5 this
6 what
7 我
select * from t1 order by nlssort(c1,'NLS_SORT=SCHINESE_PINYIN_M');上面的排序可以根据自己需求变动 如果想让中文排在前面 那可以将英文首字母 替换成中文尽量偏后的比如: bus 不要想让英文排在前面 可以将bus替换成吧、八之类的 也就是拼音为ba 如果要排在后面 可以替换成簿、布(bu)也就是后面的部分尽量偏后