Android数据库SQLite排序问题一:字符串类型的数值排序

在android中,数据库操作使用的是SQLite,字段为varchar属性时,排序就会按照字符串的规则就行排序。有11和2,那么11 会排到2前面,不能达到按照数值的顺序排序。

 

Android数据库SQLite排序问题一:字符串类型的数值排序_第1张图片

对这组数据按照number进行排序,正常写

SELECT * FROM Student order by number

执行后显示如下,并没有按照1,2,11,21进行排序。

Android数据库SQLite排序问题一:字符串类型的数值排序_第2张图片

达到正常的排序,需要将number进行格式化

SELECT * FROM Student order by cast(number as '9999')

运行后显示如下

 

Android数据库SQLite排序问题一:字符串类型的数值排序_第3张图片

达到了预期的效果。

还有一种方法,字段属性改为int。

你可能感兴趣的:(数据库,sql,sqlite,字符串,排序算法)