如何通过子字符串regexp排序



我有一个类似于"foo.bar.baz123"的字符串列,我想对该字符串末尾的整数排序,所以…在postgres中,我可以使用:

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

但是你是如何在sqlite中做到这一点的?

此外,我应该注意,按整数排序很重要,这样我就可以得到如下排序的结果:

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

假设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;

最新更新