你的位置:
问答吧
-> 数据库
-> 问题详情
SQL里的查询结果怎么才能按照中文数字大小排序?
有一个字段jb的内容是:
一级
二级
三级
四级
五级
六级
这样的。
我想在查询的结果中按照级别从小到大的顺序排序,但是如果简单的用order by jb,那么得到的顺序就是:二级,六级,三级,四级,五级,一级这个顺序,是按汉字的拼音首字母排的。
我要怎么才能实现按照数字的大小排呢?
作者: victorlynn
发布时间: 2008-09-25
把级去了,转成ascii码,除了十以上的,应该可以排。。。。。再简单点,建个对应表。。。再再简单点。。。存数字。
作者: caldson
发布时间: 2008-09-25
表里再加个排序的字段
作者: honghu3000
发布时间: 2008-09-25
数据库已经在使用中了,不好修改数据库结构和改动里面的数据。
最好是能用技术手段来排序,不修改数据库结构和修改内容就实现排序,不知道有没有可行的方法?
作者: victorlynn
发布时间: 2008-09-25
增加一个字段jborder,利用程序根据jb字段来进行转换
比如一级jborder就是1,二级就是2......
这个程序总是容易实现的吧?解决。
作者: 子心
发布时间: 2008-09-25
你们搞清楚一点呀,过程要说清楚一点
作者: shchzh85
发布时间: 2008-09-25
楼主先说一下 超过20 的 怎么 写的?
作者: playboy2925
发布时间: 2008-09-26
用个自定义函数,然后 order by 我的函数(jb),这个函数里判断 ,返回,1,2,3,4,5,6
作者: omeweb
发布时间: 2008-09-27
看了楼主的要求,我也有个想法:
如何使SQL查询出来的结果按照壹,贰,叁。。。来排序?
如何使SQL查询出来的结果按照笔画数来排序?
数据库合理的设计才是解决此类问题的正道和首选方法,自找麻烦没意思!
作者: fonqing
发布时间: 2008-09-27
如果jb是固定的几个选项,如:一级 二级 三级 四级 五级 六级
可以使用
mssql:charindex
mysql:instr
===========================================
以mssql为例
select * from 表
order by charindex(jb,'一级,二级,三级,四级,五级,六级')
作者: EpsiLonLink
发布时间: 2008-09-28