数据库包含数字的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))
相当的好用,又解决了一个“心头之恨”了。
比如,有这么一个字段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))
相当的好用,又解决了一个“心头之恨”了。
相关文章推荐
- 黑马程序员_日记27_JavaString类型的数字排序问题
- 向数据库查询或者更改String类型数据的问题
- 怎样解决thephile中的数据库由于排序造成的问题:对 text 数据类型不支持代码页转换。从: 1252 到: 936
- C++类中包含string类型数据使用read和write实现文件读取和输出时遇到的问题
- 数据库导入导出数据以及字段类型为timestamp时的设值问题
- 关于PDO取得结果集的数据类型为string的问题
- Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)
- 14.Laravel取出mysql数据全部被转成string类型问题
- DELPHI中利用AdvStringGrid往数据库中导入数据出现的问题
- String对象内存分配和基本数据类型的默认值与初始化相关问题
- Java 基本数据类型与其包装数据类型以及字符串(String)之间的转换问题
- Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform
- 一对多排序的问题(多端是引用类型的数据)
- asp.net关于TextBox.Text的值为空时,将string数据插入到数据库中int数据的问题的解决方法
- java 把string数据转换成date数据存入mysql的问题,如何获取当前时间date存入数据库
- 论坛中不同类型的贴的排序问题(涉及数据库的:CASE... END)
- 关于map中含数字string的排序问题
- 如何将String[]类型的数据保存到数据库里
- Mysql数据库里面的String类型依照数字来排序以及按时间排序的sql语句
- access中,有无将文本类型的数据格式转化成数值型的函数?(解决 order by 的非数字排序问题)