SQlite android中的降级顺序不正确

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 那么如何正确查询呢?谢谢,对不起,我的英语看起来

我在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

那么如何正确查询呢?谢谢,对不起,我的英语

看起来你想按数字排序,而不是按字母排序

首先,考虑将要直接排序的数据存储在数据库列中,即修改您的模式。 如果要在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排序。如果您希望它像数字一样排序,为什么要将其存储为文本?