order by convert(int,substring(col,1,case when charindex('-',col)-1<0 then 0 else charindex('-',col)-1 end))

解决方案 »

  1.   

    你的办法和我的思路一样,就是把前面取出来转换成int排序,查询结果可以,但是FT的是,水晶报表里面不管你order by 什么,它就按照字符的规则排序。刚才我修改了查询,写成了union all的方法也不行。我决定给分数段前面加上顺序标志,刚刚试了数字的,不行,它把10排在1后面。现在我正要给加上用字母为顺序号的办法,应该可以了。
      

  2.   

    VERY FT,在报表里解决了。原来那里有个设置顺序的按钮,没有看到。进去后,设成“按原始顺序”就行了。