Android 在SQL中按升序对表名进行排序

Android 在SQL中按升序对表名进行排序,android,sql,sqlite,sorting,Android,Sql,Sqlite,Sorting,我有一个名为Names的表,其中的数据存储如下 拉朱; 拉凯什; 先兆; 斯维塔; +9199869986; +9145899656; +9177885555; 测试; 狗; 现在,如果我需要按名称排序,我试着这样做 "SELECT * FROM namesTable ORDER BY tblNames ASC" 这里我首先得到数字,我希望数字在末尾,A的实际字母应该首先出现 有什么帮助吗这是你想要的吗?它将首先输出名称?在名为NAMES的列中使用numeber不是一个好主意 "SELECT

我有一个名为Names的表,其中的数据存储如下

拉朱; 拉凯什; 先兆; 斯维塔; +9199869986; +9145899656; +9177885555; 测试; 狗; 现在,如果我需要按名称排序,我试着这样做

"SELECT * FROM namesTable ORDER BY tblNames ASC"
这里我首先得到数字,我希望数字在末尾,A的实际字母应该首先出现


有什么帮助吗这是你想要的吗?它将首先输出名称?在名为NAMES的列中使用numeber不是一个好主意

 "SELECT * FROM namesTable ORDER BY tblNames DSC"

字符串值的排序基于一种称为排序规则的东西。本例中的默认排序规则可能只使用ASCII值,即将数字置于字母之前

您可以使用案例逻辑解决此问题。比如:

order by (case when substr(tblNames, 1, 1) in ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+') then 2
               else 1
          end),
         tblNames

我已将此SQL尽可能通用,因为您已使用两个不同的数据库标记了该问题。

为什么名称字段中的数字?您使用的是什么数据库?您好,很抱歉延迟,其sqlite数据库,假设用户未存储名称字段,我们将在名称字段中存储数字设计非常糟糕。请改用默认名称。比如没有插入名字。是的,应该是TBL名字。你的问题是如果我需要按名称排序,所以我只使用名称作为列名。