您的位置:首页 > 数据库

数据库包含数字的String类型数据的排序问题

2007-01-26 13:08 369 查看
一直以来,数据库中包含数字的String类型数据的排序问题一直困扰着我。
比如,有这么一个字段storeCode其中的数据为:
SCM-FA-ZY-HC1
SCM-FA-ZY-HC2
SCM-FA-ZY-HC3
SCM-FA-ZY-HC4
SCM-FA-ZY-HC5
SCM-FA-ZY-HC6
SCM-FA-ZY-HC7
SCM-FA-ZY-HC8
SCM-FA-ZY-HC9
SCM-FA-ZY-HC10
SCM-FA-ZY-HC11
SCM-FA-ZY-HC12
SCM-FA-ZY-HC13
SCM-FA-ZY-HC14
SCM-FA-ZY-HC15
SCM-FA-ZY-HC16
SCM-FA-ZY-HC17
SCM-FA-ZY-HC18
SCM-FA-ZY-HC19
SCM-FA-ZY-HC20
SCM-FA-ZY-HC21
在查询语句中直接写order by storeCode,出来的结果是:
SCM-FA-ZY-HC1
SCM-FA-ZY-HC10
SCM-FA-ZY-HC11
SCM-FA-ZY-HC12
SCM-FA-ZY-HC13
SCM-FA-ZY-HC14
SCM-FA-ZY-HC15
SCM-FA-ZY-HC16
SCM-FA-ZY-HC17
SCM-FA-ZY-HC18
SCM-FA-ZY-HC19
SCM-FA-ZY-HC2
SCM-FA-ZY-HC20
SCM-FA-ZY-HC21
这个结果自然不符合要求的,怎么办呢?

今天,我终于找到了解决的方法了——在order by 的时候加上以下的函数转换:
order by right(colname,patindex('%[0-9]%',colname))

相当的好用,又解决了一个“心头之恨”了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐