今天遇到了一个需要对数字加中文楼层(如1002层)进行排序的问题,经过百度,查找资料终于解决,在此记录一下,以备下次不时之需:
select FloorName,RoomName
from RoomTb
order by convert( int,case when patindex('%[^0-9]%',FloorName) >0
then substring(FloorName,1, patindex('%[^0-9]%',FloorName) -1 )
else FloorName end)
具体sql语句执行效果如下:
FloorName
RoomName
9层
907多功能演示厅
9层
999会议室
10层
1007会议室
10层
1006洽谈室
11层
1112会议室
11层
1110会议室
11层
1109会议室
11层
2014-05-05新建会议室
12层
1210会议室
12层
1212会议室
12层
1202会议室
13层
1309洽谈室