SQL Order By 程序排序问题

[复制链接]
查看11 | 回复8 | 2011-9-8 10:09:38 | 显示全部楼层 |阅读模式
ASP中SQL数据库连接OrderBy程序降序排序中发现100比所有二位数小,如何解决?存储时SQL=\"INSERTINTOscore(s_name,s_score)values(\'\"defds123Request.Form(\"name\")defds123\"\',\'\"defds123scoredefds123\"\')\"查询时SQL=\"Select*FromscoreOrderBys_scoreDESC\"
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
因为你的s_score是varchar的,排序是按varchar的顺序排如100和2100的第一位是1比2小,所以在2前面,你可以在orderby里转换成number进行排序追问在orderby里转换成number进行排序?怎么写?
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
你是oracle、sqlserver还是其他数据库?oracle是Select*FromscoreOrderByto_number(s_score)DESC
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
简单本地Accessmdb
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
建议把s_score改为数字型的,没有找到access转换数字的函数
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
100会小?把desc去掉看看。
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
查一下你的score表里面的s_score字段,看看是不是设定了只能插入两位数,如果是的话那100就是00,这样就会被所有的二位数小了。
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
100是字符串字符串排序规则是从第一位开始比较然后比较第二位....比如\'8\'\'22\'\'201\'\'100\'可以试试orderbyto_number()
回复

使用道具 举报

千问 | 2011-9-8 10:09:38 | 显示全部楼层
Select*FromscoreOrderByto_number(s_score)DESC
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行