2015-12-24 24 views
2

我有一個字符串列,它是像「foo.bar.baz123」,我想訂購在那個字符串的結尾整數所以.. Postgres裏,我能做到這一點有:如何按子字符串排序正則表達式?

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

但你如何在sqlite中做到這一點?

另外,我要指出,它由整數訂單的重要,這樣我得到的結果進行排序,如:

foo.bar.baz1 
foo.bar.baz2 
foo.bar.baz10 
foo.bar.baz123 
+0

結尾的數字是否總是包含3位數字,或者可能會有所不同? –

+0

@TimBiegeleisen,看到我更新的問題..將有1-n位數字。 – patrick

回答

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; 
相關問題