数据库包含数字的String类型数据的排序问题
一直以来,数据库中包含数字的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))
相当的好用,又解决了一个“心头之恨”了。
posted on 2007-01-26 13:08 littlebamboo 阅读(1086) 评论(0) 编辑 收藏 举报