如题:求规律,进行排序   如:字母A开头的放一块,然后再按A后面的数字排序...依次类推...谢谢 A1進修  
 A2創業
 A3身體不適
 A4家中有事
 A5適應不良
 A6人際衝突
 A7不愿簽合同
 A9實習生返校
 A8懷孕
 B1主管因素
 B5找到新工作
 B5薪資低
 B6福利差
 C3無塵室環境
 D2打架 
A10結婚
A11家中農忙
A12照顧家人
A13想家
A14離家遠
A15家中拆遷
A16追隨家人
A17回任
B2缺乏發展空間
B3缺乏訓練機會
B4缺乏輪調機會
B7請假難
C1工作時間長
C2工作壓力大
C4工作崗位不適應
C5工作缺乏挑戰
C6無法配合輪班
C7生活環境不良
C8不愿簽合同
D1曠工
D3偷竊
D4體檢不合格 
D5違反任用規定
D6違反公司相關規定
E1不勝任此工作
E2工作表現不佳
E3試用期不合格
E4認證未通過

解决方案 »

  1.   

    http://blog.sina.com.cn/s/blog_4b1a10010100mluy.html
      

  2.   

    order by 字段,substring(字段,2,PATINDEX('%[^0-9]%',right(字段,len(字段)-1)))*1
      

  3.   

    order by 字段,substring(字段,2,PATINDEX('%[^0-9]%',right(字段,len(字段)-1))-1)*1
      

  4.   

    ----------------------------------------------------------------
    -- Author  :fredrickhu(小F,向高手学习)
    -- Date    :2011-10-14 11:03:35
    -- Version:
    --      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86) 
    -- Apr 22 2011 11:57:00 
    -- Copyright (c) Microsoft Corporation
    -- Enterprise Evaluation Edition on Windows NT 6.1 <X64> (Build 7600: ) (WOW64)
    --
    ----------------------------------------------------------------
    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    go 
    create table [tb]([col] varchar(18))
    insert [tb]
    select 'A1進修' union all
    select 'A2創業' union all
    select 'A3身體不適' union all
    select 'A4家中有事' union all
    select 'A5適應不良' union all
    select 'A6人際衝突' union all
    select 'A7不愿簽合同' union all
    select 'A9實習生返校' union all
    select 'A8懷孕' union all
    select 'B1主管因素' union all
    select 'B5找到新工作' union all
    select 'B5薪資低' union all
    select 'B6福利差' union all
    select 'C3無塵室環境' union all
    select 'D2打架' union all
    select 'A10結婚' union all
    select 'A11家中農忙' union all
    select 'A12照顧家人' union all
    select 'A13想家' union all
    select 'A14離家遠' union all
    select 'A15家中拆遷' union all
    select 'A16追隨家人' union all
    select 'A17回任' union all
    select 'B2缺乏發展空間' union all
    select 'B3缺乏訓練機會' union all
    select 'B4缺乏輪調機會' union all
    select 'B7請假難' union all
    select 'C1工作時間長' union all
    select 'C2工作壓力大' union all
    select 'C4工作崗位不適應' union all
    select 'C5工作缺乏挑戰' union all
    select 'C6無法配合輪班' union all
    select 'C7生活環境不良' union all
    select 'C8不愿簽合同' union all
    select 'D1曠工' union all
    select 'D3偷竊' union all
    select 'D4體檢不合格' union all
    select 'D5違反任用規定' union all
    select 'D6違反公司相關規定' union all
    select 'E1不勝任此工作' union all
    select 'E2工作表現不佳' union all
    select 'E3試用期不合格' union all
    select 'E4認證未通過'
    --------------开始查询--------------------------
    select * from [tb] order by col,substring(col,2,PATINDEX('%[^0-9]%',right(col,len(col)-1))-1)*1
    ----------------结果----------------------------
    /* 
    (43 行受影响)
    col
    ------------------
    A10結婚
    A11家中農忙
    A12照顧家人
    A13想家
    A14離家遠
    A15家中拆遷
    A16追隨家人
    A17回任
    A1進修
    A2創業
    A3身體不適
    A4家中有事
    A5適應不良
    A6人際衝突
    A7不愿簽合同
    A8懷孕
    A9實習生返校
    B1主管因素
    B2缺乏發展空間
    B3缺乏訓練機會
    B4缺乏輪調機會
    B5薪資低
    B5找到新工作
    B6福利差
    B7請假難
    C1工作時間長
    C2工作壓力大
    C3無塵室環境
    C4工作崗位不適應
    C5工作缺乏挑戰
    C6無法配合輪班
    C7生活環境不良
    C8不愿簽合同
    D1曠工
    D2打架
    D3偷竊
    D4體檢不合格
    D5違反任用規定
    D6違反公司相關規定
    E1不勝任此工作
    E2工作表現不佳
    E3試用期不合格
    E4認證未通過(43 行受影响)
    */
      

  5.   

    如果你的字段是char型,或者只要不是數字int float 等類型,order by asc就是以字母順序排列的,符合你的要求
      

  6.   

    if object_id('[tb]') is not null drop table [tb]
    go 
    create table [tb]([col] varchar(18))
    insert [tb]
    select 'A1進修' union all
    select 'A2創業' union all
    select 'A3身體不適' union all
    select 'A4家中有事' union all
    select 'A5適應不良' union all
    select 'A6人際衝突' union all
    select 'A7不愿簽合同' union all
    select 'A9實習生返校' union all
    select 'A8懷孕' union all
    select 'B1主管因素' union all
    select 'B5找到新工作' union all
    select 'B5薪資低' union all
    select 'B6福利差' union all
    select 'C3無塵室環境' union all
    select 'D2打架' union all
    select 'A10結婚' union all
    select 'A11家中農忙' union all
    select 'A12照顧家人' union all
    select 'A13想家' union all
    select 'A14離家遠' union all
    select 'A15家中拆遷' union all
    select 'A16追隨家人' union all
    select 'A17回任' union all
    select 'B2缺乏發展空間' union all
    select 'B3缺乏訓練機會' union all
    select 'B4缺乏輪調機會' union all
    select 'B7請假難' union all
    select 'C1工作時間長' union all
    select 'C2工作壓力大' union all
    select 'C4工作崗位不適應' union all
    select 'C5工作缺乏挑戰' union all
    select 'C6無法配合輪班' union all
    select 'C7生活環境不良' union all
    select 'C8不愿簽合同' union all
    select 'D1曠工' union all
    select 'D3偷竊' union all
    select 'D4體檢不合格' union all
    select 'D5違反任用規定' union all
    select 'D6違反公司相關規定' union all
    select 'E1不勝任此工作' union all
    select 'E2工作表現不佳' union all
    select 'E3試用期不合格' union all
    select 'E4認證未通過'
    --------------开始查询--------------------------
    select * from [tb] order by left(col,1),substring(col,2,PATINDEX('%[^0-9]%',right(col,len(col)-1))-1)*1/*(43 行受影响)
    col
    ------------------
    A1進修
    A2創業
    A3身體不適
    A4家中有事
    A5適應不良
    A6人際衝突
    A7不愿簽合同
    A8懷孕
    A9實習生返校
    A10結婚
    A11家中農忙
    A12照顧家人
    A13想家
    A14離家遠
    A15家中拆遷
    A16追隨家人
    A17回任
    B1主管因素
    B2缺乏發展空間
    B3缺乏訓練機會
    B4缺乏輪調機會
    B5找到新工作
    B5薪資低
    B6福利差
    B7請假難
    C1工作時間長
    C2工作壓力大
    C3無塵室環境
    C4工作崗位不適應
    C5工作缺乏挑戰
    C6無法配合輪班
    C7生活環境不良
    C8不愿簽合同
    D1曠工
    D2打架
    D3偷竊
    D4體檢不合格
    D5違反任用規定
    D6違反公司相關規定
    E1不勝任此工作
    E2工作表現不佳
    E3試用期不合格
    E4認證未通過(43 行受影响)
      

  7.   


    --> 测试数据: [tb]
    if object_id('[tb]') is not null drop table [tb]
    create table [tb] (col varchar(18))
    insert into [tb]
    select 'A1進修' union all
    select 'A2創業' union all
    select 'A3身體不適' union all
    select 'A4家中有事' union all
    select 'A5適應不良' union all
    select 'A6人際衝突' union all
    select 'A7不愿簽合同' union all
    select 'A9實習生返校' union all
    select 'A8懷孕' union all
    select 'B1主管因素' union all
    select 'B5找到新工作' union all
    select 'B5薪資低' union all
    select 'B6福利差' union all
    select 'C3無塵室環境' union all
    select 'D2打架' union all
    select 'A10結婚' union all
    select 'A11家中農忙' union all
    select 'A12照顧家人' union all
    select 'A13想家' union all
    select 'A14離家遠' union all
    select 'A15家中拆遷' union all
    select 'A16追隨家人' union all
    select 'A17回任' union all
    select 'B2缺乏發展空間' union all
    select 'B3缺乏訓練機會' union all
    select 'B4缺乏輪調機會' union all
    select 'B7請假難' union all
    select 'C1工作時間長' union all
    select 'C2工作壓力大' union all
    select 'C4工作崗位不適應' union all
    select 'C5工作缺乏挑戰' union all
    select 'C6無法配合輪班' union all
    select 'C7生活環境不良' union all
    select 'C8不愿簽合同' union all
    select 'D1曠工' union all
    select 'D3偷竊' union all
    select 'D4體檢不合格' union all
    select 'D5違反任用規定' union all
    select 'D6違反公司相關規定' union all
    select 'E1不勝任此工作' union all
    select 'E2工作表現不佳' union all
    select 'E3試用期不合格' union all
    select 'E4認證未通過'--开始查询
    select * from [tb] 
    order by LEFT(col,1),convert(int,stuff(left(col,PATINDEX('%[吖-座]%',col)-1),1,1,''))--结束查询
    drop table [tb]/*
    col
    ------------------
    A1進修
    A2創業
    A3身體不適
    A4家中有事
    A5適應不良
    A6人際衝突
    A7不愿簽合同
    A8懷孕
    A9實習生返校
    A10結婚
    A11家中農忙
    A12照顧家人
    A13想家
    A14離家遠
    A15家中拆遷
    A16追隨家人
    A17回任
    B1主管因素
    B2缺乏發展空間
    B3缺乏訓練機會
    B4缺乏輪調機會
    B5找到新工作
    B5薪資低
    B6福利差
    B7請假難
    C1工作時間長
    C2工作壓力大
    C3無塵室環境
    C4工作崗位不適應
    C5工作缺乏挑戰
    C6無法配合輪班
    C7生活環境不良
    C8不愿簽合同
    D1曠工
    D2打架
    D3偷竊
    D4體檢不合格
    D5違反任用規定
    D6違反公司相關規定
    E1不勝任此工作
    E2工作表現不佳
    E3試用期不合格
    E4認證未通過(43 行受影响)