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
运算符 +
将字符串隐式转换为数字。
我有一列包含带有数字的 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
运算符 +
将字符串隐式转换为数字。