问题描述
我使用SQLite数据库在我的Android应用程序。
I'm using SQLite DB in my Android Application.
有一列中的数字和字符串。是这样的:
There are numbers and strings in a column. Something like:
3,1,2,6 / 6A中,X,3A,10,12,XY,44,ZW
3, 1, 2, 6 / 6A, X, 3A, 10, 12, XY, 44, ZW
如果我选择此列的值,并进行排序,我得到:
If I select values of this column and sort them, I get:
1,10,12,2,3,3A,44,6 / 6A中,X,XY,ZW
1, 10, 12, 2, 3, 3A, 44, 6 / 6A, X, XY, ZW
是否有任何可能的 SQLite的以这些值,以便进行排序,我会得到:
Is there any possibility in SQLite to sort these values so, that I would get:
1,2,3,3A,6 / 6A,10,12,44中,X,XY,ZW
1, 2, 3, 3A, 6 / 6A, 10, 12, 44, X, XY, ZW
感谢您,
穆尔
推荐答案
经过多次实验我已经有了一个正确的查询:
After many experiments I've got a proper query:
select _id, case
when cast(_id as number) = 0 then _id
when cast(_id as number) <>0 then cast(_id as number)
end as sorting
from lines
order by sorting
的好处是,对于6 / 6A'6回铸造过程中的回报。
The good thing is, that the casting operation returns for '6 / 6A' 6 back.
UPD
不知道为什么,但如果我在Android应用程序使用此查询,我得到_id列数,所以我必须做铸件为文本
Don't know why, but if I use this query in my android application, I get _id column as number, so I must do the casting to text
select cast(_id as text) as _id, case
when cast(_id as number) = 0 then _id
when cast(_id as number) <>0 then cast(_id as number)
end as sorting
from lines
order by sorting
这篇关于SQLite的排序问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!