соритровка чисел как текст

  • Автор темы Автор темы kibi
  • Дата начала Дата начала

kibi

Новичок
сортировка чисел как текст

Есть база, в которую пишут юзеры данные в виде чисел:
1, 4, 01, 04, 11, 14 и т.д.
Поле, в котором храняться данные - char(2)
К сожалению менять структура базы и способ записи нельзя...

Select *
from table1
order by Field1

При сортировке по данному полю результаты показываются неправильно: 01, 10, 11 и т.д.

Можно ли средстави МуСКЛ как-то форматировать данные перед сортировкой...?

Пробовал так:

Select format(Filed1, 0) as Formatted
from table1
order by Formatted

нули убрались слева, но неправильный порядок сортировки не поменялся.
Варианты изменения типа поля базы или ручной конвертации базы не подходят. :-(

Спасибо.
 
потому что не могу туда лезть - а получаю только такой формат
 
что значит - "не могу туда лезть"? Не можешь свой запрос послать? Тогда какой смысл вообще спрашивать?
 
[sql]
SELECT IF (
LENGTH( a ) < 2, CONCAT( '0', a ) , a
) AS field
FROM a
ORDER BY `field` ASC
[/sql]
Только учти, что при подобном подходе индексы не могут быть использованы.
 
Фанат
при каком форматировании SQL? Том что поддерживается форумом?

-~{}~ 06.08.05 22:18:

GoaMind
Хороший вариант. Но это сортировка текста как чисел. А автору нужно наоборот :-)
 
Сверху