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
我的数据库中有这样的数据:
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