在SQL中按升序排序表名

时间:2015-03-02 16:55:12

标签: android sql sqlite sorting

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

Raju;
Rakesh;
Preema;
Swetha;
+9199869986;
+9145899656;
+9177885555;
Testing;
Doggy;

现在,如果我需要按名称排序,我就像这样尝试

"SELECT * FROM namesTable ORDER BY tblNames ASC"

这里我首先得到数字,我希望数字在最后,A的实际字母应首先出现。

任何帮助

2 个答案:

答案 0 :(得分:1)

字符串值的排序基于称为" collat​​ion"的内容。您的情况下的默认排序规则可能只使用ASCII值,这会将数字放在字母之前。

您可以使用case逻辑解决此问题。类似的东西:

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视为通用SQL,因为您已使用两个不同的数据库标记了该问题。

答案 1 :(得分:0)

这是你想要的吗?它会先输出名字吗?在名为NAMES

的列中包含数字并不是一个好主意
 "SELECT * FROM namesTable ORDER BY tblNames DSC"