SQLITE:如何对包含值1-99和字母a-z的String列进行排序,首先是数字,然后是字母

时间:2015-09-13 00:21:19

标签: sql database sqlite sorting

我想要一个字符串列的排序顺序,如下所示(数字第一,字母最后):

void f2( B b ) { f1( A{ b.i, b.f } ); }

这是我当前的查询

1
2
...
10
11
...
A
B
C
...

不幸的是,这导致以下排序(2之前的10)

SELECT * FROM PAGES_VIEW ORDER BY chapterTitle

如何实现我想要的订单?

编辑:将我的CAST删除为整数以避免混淆。

1 个答案:

答案 0 :(得分:1)

您应该使用case语句来获取所需的order

Fiddle with sample data

select * from pages_view 
order by (case when cast(chaptertitle as integer) = chaptertitle then 1
         else 0 end) desc, cast(chaptertitle as integer), chaptertitle