SQLITE 按数字而非字母排序

SQLITE order by numeric and not alphabetic

当我按 Classement 订购我的数据库 SQLITE 时,我有这个:

Classement | Nom
1          | clem
10         | caro
11         | flo
12         | raph
2          | prisc
3          | karim
4          | prout

我想得到:

Classement | Nom
1          | clem
2          | prisc
3          | karim
4          | prout
10         | caro
11         | flo
12         | raph

这是我的代码:

SELECT t.Classement 
FROM tableau t 
WHERE 1 = (SELECT 1 + COUNT (*) FROM tableau t2 WHERE t2.Classement < t.Classement OR ( t2.Classement == t.Classement AND t2.Nom < t.Nom ))

谁能帮帮我? 谢谢!

我猜Classement列不是整数而是字符。所以试试这个:

SELECT * FROM tableau ORDER BY cast(Classement as integer);

如果值是字符串,您将按字母顺序排列。

要更改 table 以便所有 Classement 值都是数字,请确保列类型不是文本类型,并使用此:

UPDATE tableau SET Classement = CAST(Classement AS NUMBER);