各位大虾,刚刚对中文汉字进行排序,结果排完序后发现不知道按照什么排序的。
求指点。

解决方案 »

  1.   

    按中文在计算机中编码的顺序,了解一下gbk编码
      

  2.   


        PROPERTYID VALUE NAME
    1 11000599 上海
    2 11000617 东莞
    3 11000618 乌鲁木齐
    4 11000603 北京
    5 11000600 南京
    6 11000608 天津
    7 11000621 广州
    8 11000619 廊坊
    9 11000609 成都
    10 11000620 杭州
    11 11000616 武汉
    12 11000601 济南
    13 11000598 深圳
    14 11000602 福州
    15 11000607 西安
    16 11000604 郑州
    17 11000606 长沙
     select t.propertyid,
             t.value,t.name from tpl_property_t t where t.parentid = (select t.propertyid from
             tpl_property_t t
             where t.name='InsuranceCity') order by t.name上面的输出结果,下面的sql。  根本就不是根据拼音排序的。
      

  3.   

    请问大虾,能不能写给方法给我,让我测试测试那个gbk编码。最好是java代码。
      

  4.   

    我刚才在Oracle中试了一下 汉字他是按字母来排的啊 
    不知道楼主是怎么会事了1 1 上海
    2 2 北京
    3 3 长春
    4 4 广州
    5 6 成都1 2 北京
    2 3 长春
    3 6 成都
    4 4 广州
    5 1 上海
    create table addr (id int ,name varchar2(20) )insert into addr  values (1,'上海');
    insert into addr  values (2,'北京');
    insert into addr  values (3,'长春');
    insert into addr  values (4,'广州');
    insert into addr  values (6,'成都');select * from addr
    select * from addr order by name ;
      

  5.   

    楼主可以看下字段数据是否有间隙。。前面有空格什么的 按道理order by 应该会按拼音顺序排序的!
      

  6.   


    --使用拼音排序
        select * from addr order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
     
    --使用笔画排序
        select * from addr order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
     
    --使用偏旁部首排序
        select * from addr order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');