【问题标题】:SQLite - order by numbers inside stringSQLite - 按字符串内的数字排序
【发布时间】:2020-12-22 17:58:20
【问题描述】:

这是我在这里的第一篇文章,所以请耐心等待。

我正在尝试使用 SQLite 按包含字母的特定行中的数字对查询进行排序。

示例:“1993 年冬季”。

我希望能够仅按数字排序,而不改变表结构。

我的查询:

select Col from table order by Col*1, Col Asc

查询先按字母排序,再按数字排序,我只想按数字排序。

有人知道怎么做吗?

【问题讨论】:

  • 这实际上取决于如何将数字格式化为您想要排序的字符串,但是您会发现尝试提取字符串中的数字并对其进行排序不是很有效,这就是为什么如果您需要对其进行查询,您确实应该单独存储数字数据。
  • 你能再分享一些数据吗?它们都是“冬季”的形式吗?
  • @Mureinik 它的 4,冬天,夏天,秋天,春天,然后是岁月。所以应该是“{Season} {Year}”
  • @juharr 我同意,问题是我无论如何都无法更改表格。 ://

标签: sql string sqlite sql-order-by


【解决方案1】:

所以应该是{Season} {Year}

如果数字始终位于字符串的第一个空格之后,我们可以使用字符串函数提取它们,如下所示:

select col
from mytable
order by substr(col, instr(col, ' ') + 1) + 0, col

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2018-01-21
    • 2012-08-19
    • 1970-01-01
    • 2015-04-01
    • 2017-07-25
    相关资源
    最近更新 更多