SQLITE按数字顺序而不是字母顺序

时间:2017-09-28 10:43:19

标签: sqlite numeric sql-order-by

当我通过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 ))

任何人都可以帮助我吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

如果值是字符串,则会得到字母顺序。

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

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

答案 1 :(得分:0)

我猜Classement列不是整数而是字符。

试试这个 SELECT * FROM tableau order by cast(Classement as integer)