自己写了个sql语句
SELECT UnitName  FROM T_BAS_ORGANIZATION WHERE SuperId = '1' and UnitLevel = '1'   order by 
 CHARINDEX(SUBSTRING(UnitName,6,1),'一,二,三,四,五,六,七,八,九') asc 查出来的结果是但是不确定,数据库中那天再加个其他的北京第几几客运公交公司 怎么修该mysql数据库

解决方案 »

  1.   


    SELECT UnitName  
     FROM T_BAS_ORGANIZATION 
     WHERE SuperId = '1' and UnitLevel = '1'   
     order by 
     case when UnitName='北京公交第一客运分公司' then 1
          when UnitName='北京公交第二客运分公司' then 2
          when UnitName='北京公交第三客运分公司' then 3
          when UnitName='北京公交第四客运分公司' then 4
          when UnitName='北京公交第五客运分公司' then 5
          when UnitName='北京公交第六客运分公司' then 6
          when UnitName='北京公交第七客运分公司' then 7
          when UnitName='北京公交第八客运分公司' then 8
          when UnitName='北京公交第九客运分公司' then 9
          when UnitName='北京公交第十客运分公司' then 10
          when UnitName='北京公交第十一客运分公司' then 11
          when UnitName='北京公交第十二客运分公司' then 12
          else 0
      end asc
      

  2.   

    SELECT  UnitName
    FROM    T_BAS_ORGANIZATION
    WHERE   SuperId = '1'
            AND UnitLevel = '1'
    ORDER BY --PATINDEX支持模糊查询
    (
    CASE
    WHEN PATINDEX('%十一%', UnitName) > 0 THEN 11
    WHEN PATINDEX('%十二%', UnitName) > 0 THEN 12  
    WHEN PATINDEX('%十%', UnitName) > 0 THEN 10
    WHEN PATINDEX('%一%', UnitName) > 0 THEN 1
    WHEN PATINDEX('%二%', UnitName) > 0 THEN 2
    WHEN PATINDEX('%三%', UnitName) > 0 THEN 3
    WHEN PATINDEX('%四%', UnitName) > 0 THEN 4
    WHEN PATINDEX('%五%', UnitName) > 0 THEN 5
    WHEN PATINDEX('%六%', UnitName) > 0 THEN 6
    WHEN PATINDEX('%七%', UnitName) > 0 THEN 7
    WHEN PATINDEX('%八%', UnitName) > 0 THEN 8
    WHEN PATINDEX('%九%', UnitName) > 0 THEN 9
    END  
    )
      

  3.   

    --SORRY,没看清,你的是MYSQL,还是去MYSQL专区问吧