2011-12-21 3 views
1

Как сортировать колонку символов численно. У меня есть столбец чисел, хранящихся в виде символов. Когда я делаю ORDER BY для этой колонки, я получаю следующее:Порядок по столбцу char численно

100D 
131A 
200 
21B 
30 
31000A 
etc. 

Возможно, у вас будет один алфавит в конце. Как я могу заказать эти цифры численно? Нужно ли мне что-то конвертировать или для этого есть команда или функция SQL?

ответ

3

Вы могли бы использовать что-то вроде:

ORDER BY Cast(regexp_replace(yourcolumn, '[^0-9]', '', 'g') as integer) 
+0

Благодаря @David его работы для меня – srini

+0

HI Давида может у объяснить, что происходит, когда я пишу regex_replace (,) – srini

+0

В этом случае замена любых не номер, пустую строку. Определение функции: http://www.postgresql.org/docs/9.1/static/functions-string.html. POSIX Регулярные выражения: http://www.postgresql.org/docs/9.1/static/functions-matching.html#FUNCTIONS-POSIX-REGEXP – DavidEG

Смежные вопросы