我有一个名为Names的表,其中的数据存储如
Raju;
Rakesh;
Preema;
Swetha;
+9199869986;
+9145899656;
+9177885555;
Testing;
Doggy;
现在,如果我需要按名称排序,我就像这样尝试
"SELECT * FROM namesTable ORDER BY tblNames ASC"
这里我首先得到数字,我希望数字在最后,A的实际字母应首先出现。
任何帮助
答案 0 :(得分:1)
字符串值的排序基于称为" collation"的内容。您的情况下的默认排序规则可能只使用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)
"SELECT * FROM namesTable ORDER BY tblNames DSC"