C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как отсортировать текстовое поле с числами?
jeka_t
  Отправлено: 11.03.2005, 16:54


Не зарегистрирован







ADO
Добрый день всем...
Есть такой вопрос:
У меня есть текстовое поле в таблице, в нём такие данные:
А-1
А-2
А-3
А-15
А-4
и т. д.
Я хочу отсортировать всю таблицу относительно этого поля. Согласно кодов символов, сортируется в такой последовательности:
А-1
А-15
А-2
А-3
А-4
Но это не то, что я хочу получить...
Возможен ли такой вариант сортировки:
А-1
А-2
А-3
А-4
А-5
???
AVC
Отправлено: 11.03.2005, 17:23


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Возможен ли такой вариант сортировки:


Да, если разбить поле на составляющие и сортировать по двум полям (можно виртуальным).
Или выравнять числовую часть по правому краю

Реализация зависит от СУБД (см. верхний топик)
olegenty
Отправлено: 12.03.2005, 18:59


Ветеран

Группа: Модератор
Сообщений: 2412



я бы вообще это на стороне сервера сделал, да при том вообще поле в таблице на 2 побил "перманентно", а вот выводил на экран — как пользователю надо. а то 1 НФ не соблюдается.
xim
Отправлено: 14.03.2005, 11:06


Станционный диспетчер

Группа: Участник
Сообщений: 143



В MSSQLServer
SQL
/* nm - то самое поле */
select * from table order by cast(
ltrim(substring(nm,charindex('-',nm)+1, len(nm)-1)) as int
)


Под другими платформами нужно найти аналоги функций

Вернуться в Работа с базами данных в C++Builder