SQlite android中的降级顺序不正确
我在sqlite中降序时遇到问题, 我在“kd_人员”领域有如下记录:SQlite android中的降级顺序不正确,sqlite,Sqlite,我在sqlite中降序时遇到问题, 我在“kd_人员”领域有如下记录: P1 P2 P3 P4 P5 P10 当创建查询“按kd_people desc从人员订单中选择kd_people”时,结果如下: P1 P10 P2 P3 P4 P5 但我想要这样的结果: P10 P5 P4 P3 P2 P1 那么如何正确查询呢?谢谢,对不起,我的英语看起来
P1
P2
P3
P4
P5
P10
当创建查询“按kd_people desc从人员订单中选择kd_people
”时,结果如下:
P1
P10
P2
P3
P4
P5
但我想要这样的结果:
P10
P5
P4
P3
P2
P1
那么如何正确查询呢?谢谢,对不起,我的英语看起来你想按数字排序,而不是按字母排序
首先,考虑将要直接排序的数据存储在数据库列中,即修改您的模式。 如果要在SQL中执行此操作,请使用
SUBSTR()
删除非数字前缀,并使用CAST()
将剩余部分转换为数字。假设非数字前缀始终仅为1个字符的示例:
... ORDER BY CAST(SUBSTR(kd_people,2) AS INTEGER) DESC
(您发布的示例似乎是一个
ASC
排序,而不是DESC
)如果字符串总是以p
开头,您可以尝试提取数字部分并按其排序。如果使用DESC
得到第二个结果,则会出现非常奇怪的情况。否则,@Henry拥有它的权利:将列拆分为kd\u people\u prefix
和kd\u people\u number
,确保后者有数字而不是字符串,并且按kd\u people\u prefix DESC、kd\u people\u number DESC排序。如果您希望它像数字一样排序,为什么要将其存储为文本?