sqlite 按包含带逗号分隔符的数字的字符串排序

sqlite order by string containing number with comma delimiter

我有一列包含带有数字的 Sring 数据。数字的格式类似于 (x,xxx)。 例如,数字 1555 存储为 1,555 我想从 table 订购数据。我试过 CAST AS

@Query("SELECT * from  country_table ORDER BY CAST(cases AS INTEGER)")
fun getAllCountries(): LiveData<List<SingleCountryStats>>

但这不起作用,因为由于中间的逗号,该字段无法转换为整数

是否有删除逗号然后对结果排序的选项?

如果一致使用逗号,可以使用:

order by length(cases), cases

否则,您可以去掉逗号并转换为:

order by cast(replace(cases, ',', '') as int)

删除逗号并将列排序为数字:

SELECT * from  country_table ORDER BY REPLACE(cases, ',', '') + 0

运算符 + 将字符串隐式转换为数字。