查询对字段进行排序,使字符串首先出现,然后出现数字

时间:2010-06-30 13:52:59

标签: android sqlite

我有一个包含数字或字符串的列。列的类型是varchar。

通常当我们使用字符串字段对其进行排序时,所有数字首先出现,然后字符串开始。但我首先想要所有字符串,然后是数字。

TIA!

4 个答案:

答案 0 :(得分:1)

您必须在两个单独的查询中编写它。一个用于选择数字,另一个用于字符串。我最好创建第二列(一个用于数字,一个用于字符串),这样可以更轻松,更快速地运行这两个查询。

答案 1 :(得分:0)

这对我有用......

Select * from Table order by stringfield+0;

编辑:http://www.sqlite.org/datatypes.html(第4.0点)

更新:试试这个....

select * from Table where LENGTH(trim(stringfield,"0123456789 ") )=0 union select * from table order by stringfield;

答案 2 :(得分:0)

以下内容(如上所述的两个查询):

select * from Table where LENGTH(trim(stringfield,"0123456789 ")) > 0; select * from table where LENGTH(trim(stringfield,"0123456789 ")) = 0;

第一个选择应仅返回非数字值,而第二个选择应仅返回数值。

对于包含数字和字符串数据混合的表,首先输出字符串,然后输出数字。

答案 3 :(得分:0)

您是否考虑过制作custom collation-function?我自己从来没有用过这个,但听起来就像你需要的那样。