Android SQLiteDatabase查询排序顺序字母在前,数字和特殊字符在前

Android SQLiteDatabase query sorting order Alphabet first then numbers and special characters

我的数据库中有这样的数据:

Abc
Rsy
456
Zur
(67
123
DYU
*90

我想这样排序:-

Abc
DYU
Rsy
Zur
123
456
(67
*90

我正在使用以下查询来获取数据:-

SELECT * FROM list WHERE order by 
CASE WHEN name GLOB '[A-Za-z]*' THEN name ELSE '~' || name END

使用上面的查询,我得到了数字前的特殊字符。那么我怎样才能得到上面的排序顺序呢?

在您的 CASE 表达式中,所有分支 return 同一列,但它应该 return 不同的值,具体取决于您的条件:

SELECT * FROM list 
ORDER BY CASE 
    WHEN name GLOB '[A-Za-z]*' THEN 1
    WHEN name GLOB '[0-9]*' THEN 2  
    ELSE 3 
  END,
  name