+ -
当前位置:首页 → 问答吧 →  请教一个SQL查询

请教一个SQL查询

时间:2011-10-24

来源:互联网

我要在数据库里做一个查询,按照title属性进行排序。。遇到一个问题,因为title里有这样的内容TJH-1,THH-1B,TJH-2B,还有带汉字的。。排序的时候就成了TJH-1,TJH-2B,TJH-1B..我想实现的排序是TJH-1,TJH-1B,TJH-2B..这样的查询怎么写啊?

作者: w2826783   发布时间: 2011-10-24

直接 order by title desc 试试

作者: bear63   发布时间: 2011-10-24

字符串的排序是固定的,你更改不了,你只可以选择是正排序还是倒排序
串的排序貌似是逐个字符取asc

作者: rorom   发布时间: 2011-10-24

我用的就是你说的那个。。查出来的就是我帖子里说的结果。。

作者: w2826783   发布时间: 2011-10-24

串的排序是什么意思啊?

作者: w2826783   发布时间: 2011-10-24

而且我测试了,select * from table order by title; 是按这样的顺序排序的 
TJH-1 TJH-1B TJH-2 TJH-2B TJH-3B

作者: rorom   发布时间: 2011-10-24

上面说了啊,里面还带汉字的。。。如果光是字母+数字的还好,就是烦人的汉字,排序就乱了。。

作者: w2826783   发布时间: 2011-10-24

select * from tb order by cast( substring(title,5,1) as int) asc

作者: aspwebchh   发布时间: 2011-10-24

7楼的,你的语句我有点看不明白,能说明下么?

作者: w2826783   发布时间: 2011-10-24

TJH-1,TJH-2B,TJH-1B

你不是要按这个数字排序吗,那就把数据取出来,转换成int类型,再排序就行了

还有你的数据库是什么?sqlserver吗

作者: aspwebchh   发布时间: 2011-10-24

不能这样写啊,因为还有的是有汉字的。。而且也不一定是第五位数就是数字。。

作者: w2826783   发布时间: 2011-10-24

热门下载

更多