关于SQL排序的问题,求解

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:14:09
SQL中某表某字段字符形,有如下数据:
12-2
12-13
12-5
按升序排序后就变成了:
12-13
12-2
12-5
但是期望的结果为:
12-2
12-5
12-13
也就是说,在-符号后面再排序。怎么办?是否能通过修改排序规则实现?请指点。

select ..... order by CONVERT(int, REPLACE([字段名称], '-', ''))

在数据库里的数据类型一定是字符吧,字符1是最小的所以就排在了前面,很正常12-2
12-5
12-13 你是不是想用时间这个类型呢??

ORDER BY convert(int,substring([字段名],4,2))

ORDER BY convert(int,substring([字段名],0,2)), convert(int,substring([字段名],3,2))