应用于B1-1,B1-2,B10-1,B11-1
sqlserver肯定不能按照字符串进行排序,需要进行处理一番:
select CONVERT(varchar, LEFT(code,1)),convert(int, RIGHT(Replace(code,'-',''), LEN(code)-2)) from xxx a where 1 = 1
order by CONVERT(varchar, LEFT(code,1)) ASC, convert(int, RIGHT(Replace(code,'-',''), LEN(code)-2)) asc
先取出第一位字符进行升序A,B,C..G,正常的顺序保证了。
第二步,剩下的数字转换为int进行处理(注意先替换掉-),asc升序排列,1,2,3,4,5