日期:2014-05-17  浏览次数:21036 次

ORACLE表字段有中文和字母2种,怎样安英文字母顺序排序;
表字段值如下:
你好
安装
是的
ni hao
an zhuang
shi de

要得到排序后结果为:
an zhuang
安装
ni hao
你好
shi de
是的

-------------------------------
就是如果是中文汉字,取第一个字母去排序?

------解决方案--------------------
SQL code
with t as
(select 'ni hao' a from dual union all
 select '无人' a from dual union all
 select 'wu ren' a from dual union all
 select '你好' a from dual union all
 select '声明' a from dual union all
 select 'shengming' a from dual )

 select a from t 
 order by  nlssort(translate(lower(a),'abcdefghjklmnopqrstwxyz','啊八嚓大哦发噶哈几卡拉吗呐哦扒七然仨他哇西呀杂'),'NLS_SORT=SCHINESE_PINYIN_M')