【问题标题】:sqlite order by string containing number with comma delimitersqlite 按包含带逗号分隔符的数字的字符串排序
【发布时间】:2020-04-13 18:06:18
【问题描述】:

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

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

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

是否有任何选项可以删除逗号然后对结果进行排序?

【问题讨论】:

    标签: android sql sqlite android-sqlite sql-order-by


    【解决方案1】:

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

    order by length(cases), cases
    

    否则,您可以删除逗号并转换:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 这也对我有用。一旦我有足够的声望,我会给你投票。
      猜你喜欢
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 2016-05-28
      • 2017-07-17
      • 1970-01-01
      • 2012-11-12
      相关资源
      最近更新 更多