如题:求规律,进行排序 如:字母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認證未通過
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認證未通過
-- 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 行受影响)
*/
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 行受影响)
--> 测试数据: [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 行受影响)