Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLITE:如何对包含值1-99和字母a-z的字符串列进行排序,首先是数字,然后是字母_Sql_Database_Sqlite_Sorting - Fatal编程技术网

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

SQLITE:如何对包含值1-99和字母a-z的字符串列进行排序,首先是数字,然后是字母,sql,database,sqlite,sorting,Sql,Database,Sqlite,Sorting,我希望字符串列的排序顺序如下(首先是数字,最后是字母): 这是我目前的问题 SELECT * FROM PAGES_VIEW ORDER BY chapterTitle 不幸的是,这会导致以下排序(2之前的10) 我如何实现我想要的订单 编辑:删除“我的强制转换为整数”以避免混淆。您应该使用case语句来获得所需的顺序 可能希望在末尾有第二个排序项chaptertitle,因此它首先按类型(每个case语句0或1)排序,然后按实际文本排序。@jklemmack。。else部分处理文本部分。实

我希望字符串列的排序顺序如下(首先是数字,最后是字母):

这是我目前的问题

SELECT * FROM PAGES_VIEW ORDER BY chapterTitle
不幸的是,这会导致以下排序(2之前的10)

我如何实现我想要的订单


编辑:删除“我的强制转换为整数”以避免混淆。

您应该使用
case
语句来获得所需的
顺序


可能希望在末尾有第二个排序项
chaptertitle
,因此它首先按类型(每个case语句0或1)排序,然后按实际文本排序。@jklemmack。。
else
部分处理文本部分。实际上,您只是将“0”和“1”排序。如果数据不符合顺序,则排序错误。调整你的小提琴与以下数据。虽然你的答案适用于这个明确的问题,但它做出了一些假设,我不希望其他人在以后被误导:插入t值('Q')、('R')、('50')、('2')、('10')、('C')、('D')、('25')、('F')、('100')@jklemmack。。我意识到我的错误。现在更正它。
SELECT * FROM PAGES_VIEW ORDER BY chapterTitle
1
10
2
20
...
A
B
...
select * from pages_view 
order by (case when cast(chaptertitle as integer) = chaptertitle then 1
         else 0 end) desc, cast(chaptertitle as integer), chaptertitle