如果仅是如:3A 3B 3C 10A 10B 25 不出现如105A 之类的试一下:
select buildingNum from tab order by
case isnumeric(left(buildingNum,2)) when 1 then cast(left(buildingNum,2) as int)
else cast(left(buildingNum,1) as int) end,buildingNum
如果太复杂了,就只好用函数了
select buildingNum from tab order by
case isnumeric(left(buildingNum,2)) when 1 then cast(left(buildingNum,2) as int)
else cast(left(buildingNum,1) as int) end,buildingNum
如果太复杂了,就只好用函数了
FROM Table
ORDER BY LEFT(buildingNum, 1), LEFT(buildingNum, 2),
LEFT(buildingNum, 3),LEFT(buildingNum, 4),LEFT(buildingNum, 5)
如果还有更长得编号,后面再多接几个LEFT(buildingNum, 6)之类的东东