SQlite android中的降序不正确

时间:2015-01-06 08:34:41

标签: sqlite

我在sqlite中按降序排序时遇到问题, 我在字段'kd_people'中记录如下:

    P1
    P2
    P3
    P4
    P5
    P10

创建查询“select kd_people from people order by kd_people desc”时,结果如下:

    P1
    P10
    P2
    P3
    P4
    P5

但我想要这样的结果:

    P10
    P5
    P4
    P3
    P2
    P1

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

1 个答案:

答案 0 :(得分:1)

您希望在ID的数字部分按字母顺序排序,而不是按字母顺序排序。

首先,考虑将要排序的数据直接存储在数据库列中,即稍微修改架构。

如果要在SQL中执行此操作,请使用SUBSTR()删除非数字前缀,并使用CAST()将剩余数字转换为数字。假设非数字前缀始终只有1个字符的示例:

... ORDER BY CAST(SUBSTR(kd_people,2) AS INTEGER) DESC

(您发布的示例似乎是ASC种而不是DESC。)