如何通过子字符串regexp排序?

时间:2015-12-24 03:34:14

标签: sqlite

我有一个字符串列,类似于' foo.bar.baz123'我想在该字符串末尾的整数上订购所以..在postgres中,我可以这样做:

ORDER BY SUBSTRING(column FROM '(\d+)$')::integer

但你怎么在sqlite中做到这一点?

此外,我应该注意,按整数排序非常重要,这样我才能得到如下排序结果:

foo.bar.baz1
foo.bar.baz2
foo.bar.baz10
foo.bar.baz123

1 个答案:

答案 0 :(得分:0)

假设column字段的格式始终为foo.bar.bazXYZ,其中XYZ包含一个或多个数字,则以下解决方案应该有效。

SELECT column
FROM yourTable
ORDER BY CAST(SUBSTR(column,
                     INSTR(column, 'baz') + 3,
                     LENGTH(REPLACE(column, 'foo.bar.baz', ''))) AS INTEGER) ASC;