declare @a table(name varchar(10),Freq varchar(10))
insert @a select 'F42XHL1','900M'
union all select 'F42XHL2','900M'
union all select 'F42XHL3','900M'
union all select 'F42XHL7','1800M'
union all select 'F42XHL8','1800M'
union all select 'F42XHL9','1800M' select * from @a order by (cast(replace(name,'f42xhl','') as int)-1)%3,cast(replace(freq,'m','') as int)--result
/*name Freq
---------- ----------
F42XHL1 900M
F42XHL7 1800M
F42XHL2 900M
F42XHL8 1800M
F42XHL3 900M
F42XHL9 1800M(所影响的行数为 6 行)
*/
insert @a select 'F42XHL1','900M'
union all select 'F42XHL2','900M'
union all select 'F42XHL3','900M'
union all select 'F42XHL7','1800M'
union all select 'F42XHL8','1800M'
union all select 'F42XHL9','1800M' select * from @a order by (cast(replace(name,'f42xhl','') as int)-1)%3,cast(replace(freq,'m','') as int)--result
/*name Freq
---------- ----------
F42XHL1 900M
F42XHL7 1800M
F42XHL2 900M
F42XHL8 1800M
F42XHL3 900M
F42XHL9 1800M(所影响的行数为 6 行)
*/
name Freq -字段
F42XHL3 900M
F42XHL7 1800M
F42XHL8 1800M
F42XHL9 1800M 排序后希望得到的结果是:
name Freq -字段
F42XHL3 900M
F42XHL7 1800M
你的条件说的太精减了,呵呵,不太明白,估计用分组,和union ,就能解决
qq307366759 注明csdn