日期:2014-05-18  浏览次数:20586 次

求一个排序的解法,高手请进
我有数据如下

code

1
4
80
4F
3
4A
80A
5
A2
6
A
20

我想要得到如下结果
code
A
A1
1
3
4
4A
4F
5
6
20
80
80A

请各位帮忙,感激不尽

------解决方案--------------------
declare @t table(code varchar(10))
insert @t select '1 '
insert @t select '4 '
insert @t select '80 '
insert @t select '4F '
insert @t select '3 '
insert @t select '4A '
insert @t select '80A '
insert @t select '5 '
insert @t select 'A2 '
insert @t select '6 '
insert @t select 'A '
insert @t select '20 '
select * from @t order by left(code,1)
------解决方案--------------------
如果只有在首尾有一个字母,借用lxzm1001(*~悠悠蓝星梦~*) 的数据
select * from @t order by
(case when ascii(left(code,1))> 59 then '0 ' else right( '0000 '+(case when ascii(right(code,1))> 59 then left(code,len(code)-1) else code end),4) end),code