我在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
那么如何正确查询?谢谢,对不起我的英文
答案 0 :(得分:1)
您希望在ID的数字部分按字母顺序排序,而不是按字母顺序排序。
首先,考虑将要排序的数据直接存储在数据库列中,即稍微修改架构。
如果要在SQL中执行此操作,请使用SUBSTR()
删除非数字前缀,并使用CAST()
将剩余数字转换为数字。假设非数字前缀始终只有1个字符的示例:
... ORDER BY CAST(SUBSTR(kd_people,2) AS INTEGER) DESC
(您发布的示例似乎是ASC
种而不是DESC
。)