请教各位大大:如何在一列中进行排序,相似的排在一起。
如:
中国移动公司
中国联通公司
中国电信公司
广东电信公司
北京电信公司
北京移动公司排为:中国移动公司
北京移动公司
中国联通公司
中国电信公司
广东电信公司
北京电信公司数据量大致为30000行左右。公司名大概有70,80%相似的就排列在一起?

解决方案 »

  1.   

    选择前两个字,和中间两个字,分别排序即可。
    substring 或left 函数。
      

  2.   

    select *
    from (
    select '中国移动公司' a
    union all select '中国联通公司'
    union all select '中国电信公司'
    union all select '广东电信公司' 
    union all select '北京电信公司'
    union all select '北京移动公司') b
    order by substring(a,3,2) desc,left(a,2) desc
    /*
    中国移动公司
    北京移动公司
    中国联通公司
    中国电信公司
    广东电信公司
    北京电信公司
    */