4个回答
展开全部
你这个sort列肯定是非数值型的,所以他排序的时候会按照字符串排序方式;1开头的字符串排在前面,排完了,然后才开始排2开头的字符串,3、4、5往后面推;
如果你想要按照数字排序,先要把字符串转换成数字格式;
如果是sqlserver数据库的话, order by convert(int,sort) ASC或者order by cast(sort as int) ASC
如果是oracle数据库的话就用order by to_number(sort) ASC;
我看你上面的显示格式,应该是sqlserver吧,我以前也遇到过类似问题。
如果你想要按照数字排序,先要把字符串转换成数字格式;
如果是sqlserver数据库的话, order by convert(int,sort) ASC或者order by cast(sort as int) ASC
如果是oracle数据库的话就用order by to_number(sort) ASC;
我看你上面的显示格式,应该是sqlserver吧,我以前也遇到过类似问题。
更多追问追答
追答
select * from 'cms_article' order by cast(sort as binary) asc;
这样就对了,我已经试过了
展开全部
order by to_number(sort) ASC;
转成number就可以了
转成number就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将sort字段的类型改为整型即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-24
展开全部
order by cast(sort as int) asc 即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询