2015-12-24 4 views
2

У меня есть строковый столбец, который является чем-то вроде «foo.bar.baz123», и я хотел бы заказать на целое число в конце этой строки так .. В Postgres, я могу сделать это с помощью:Как заказать подстроку regexp?

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-я цифра. – 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; 
Смежные вопросы