我有一个类似于"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;