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);
当我按 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);